2016-01-14 3 views
0

Я поместил свой необработанный поток H264 в файл и поместил его во внутреннее хранилище. когда я обращаюсь к файлу с помощью класса File, он отлично работает, но когда я использую следующий код, он дает исключениеИсключение, вызванное вызовом MediaExtractor.setDataSource()

W/System.err: java.io.IOException: Не удалось создать экземпляр экстрактора.

String filePath = Environment.getExternalStorageDirectory() + "/Videos/Video_30.h264"; 
    try 
    { 
     extractor = new MediaExtractor(); 
     extractor.setDataSource(FilePath); 
    }catch(IOException e) 
    { 
     e.printStackTrace(); 
    } 

Я также использовал FileDescriptor вместо Filepath но это тоже не работает. Как я могу это решить? Спасибо

Редактировать: Разрешения для файлов добавляются в файл манифеста, поэтому нет разрешения.

ответ

1

Мой «Video_30.h264» является сырым потоком h264, который не находится внутри какого-либо контейнера. в то время как MediaExtractor.setDataSource (источник) ожидает поток внутри поддерживаемых контейнеров, таких как mp4 и т. д. Я поместил свой необработанный поток в контейнер mp4, и он работал нормально. надеюсь, это поможет.

+0

Я немного неопытный в этом поле. Вы делали это на стороне вывода (камера или что-то еще) или на самом устройстве Android? –

Смежные вопросы