Android: проблема с воспроизведением видео из внутренней памяти

Я пытаюсь воспроизвести видеофайл с помощью этого кода:

MediaController mc = new MediaController(this);
 mc.setAnchorView(videoView);
 mc.setMediaPlayer(videoView);
 Uri video = Uri.parse(path);
 videoView.setMediaController(mc);
 videoView.setVideoURI(video);
 videoView.start();

С видео, расположенными на SD-карте, все работает отлично, но когда я пытаюсь воспроизвести видео из внутренней памяти, оно говорит, что не может воспроизвести видео.

Теперь я думаю (но не уверен), что это как-то связано с тем, что, возможно, видео во внутренней памяти не имеют необходимых разрешений.

Что вы думаете?


person Alex1987    schedule 26.08.2011    source источник
comment
Два вопроса: 1. Вы пробовали воспроизводить одно и то же видео с внешнего и внутреннего накопителя? 2. Вы говорите о том же внутреннем хранилище приложений?   -  person MByD    schedule 27.08.2011
comment
@MByD 1. Да. Все видео, которые я пытаюсь воспроизвести из внутренней памяти, не работают. Те же видео работают на SD-карте. 2. Да.   -  person Alex1987    schedule 27.08.2011
comment
Можете ли вы показать, как вы получаете URI видео?   -  person MByD    schedule 27.08.2011
comment
@MByD downloadsDir = getDir(MyTube, Context.MODE_WORLD_WRITEABLE);File videoFile = new File(downloadsDir, fileName); А еще есть код, который скачивает данные с сервера и записывает их в файл. Мне интересно, правильно ли я установил свои разрешения.   -  person Alex1987    schedule 27.08.2011
comment
Возвращает ли parseUri допустимый URI?   -  person MByD    schedule 27.08.2011
comment
@MByD После проверки отладчиком - да.   -  person Alex1987    schedule 27.08.2011


Ответы (1)


Context.MODE_WORLD_WRITEABLE не подразумевает Context.MODE_WORLD_READABLE.

Вероятно, вам нужны только читаемые, но вы можете «или» константы вместе, если хотите и то, и другое.

person Chris Stratton    schedule 27.08.2011