VideoView может воспроизводить файл mp4 в каталоге данных приложения

Сохраните файл mp4 в /data/data/mypackage/files/my.mp4, затем вызовите setVideoPath(); это не может работать.

Для того же файла, если я сохраню файл в /mnt/sdcard/my.mp4, а затем вызову setVideoPath того же VideoView, он воспроизводится правильно.

Есть ли способ воспроизвести файл mp4 в папке /data/data/mypackage/files/?


person David Guo    schedule 16.03.2012    source источник


Ответы (1)


MP или VideoView использует собственный проигрыватель, который не может получить доступ к файлам, не предназначенным для чтения всеми остальными.

Итак, у вас есть варианты в основном:

1) Сделать созданные файлы общедоступными

2) Откройте входной поток для файла в вашей программе и просто передайте дескриптор файла медиаплееру:

FileInputStream fi = new FileInputStream(file);
MediaPlayer pl = new MediaPlayer();
pl.setDataSource(fi.getFD());
pl.prepare();
pl.start();

Также просмотрите эту тему VideoView/MediaPlayer не воспроизводит видео из внутренней памяти. Найдите код класса Custom VideoView на странице здесь также посмотрите на этот вопрос SO Может ли видеопросмотр воспроизводить видео, хранящееся во внутренней памяти?

person user370305    schedule 16.03.2012
comment
Как бы вы сделали это, используя только VideoView? - person Drazen Bjelovuk; 05.06.2014