Я пытаюсь использовать Android MediaMetadataRetriever, чтобы получить длину recoreded видео в формате mp4 - но я получаю исключение:Android MediaMetadataRetriever setDataSource удалось
07-13 13:54:32.686: E/AndroidRuntime(19790): FATAL EXCEPTION: main
07-13 13:54:32.686: E/AndroidRuntime(19790): java.lang.RuntimeException: setDataSource failed: status = 0x80000000
Мой код:
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(video.getMediaUrl());
String time = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
long timeInmillisec = Long.parseLong(time);
И video.getMediaUrl() путь похож на это:
file:///storage/emulated/0/Foldername/Videos/VID_20130713_135318.mp4
Я не знаю, что я делаю неправильно - кто-нибудь поможет мне, пожалуйста! Также этот код отлично работает для аудиофайлов, но не для видео.
MediaMetadataRetriever, вероятно, просто не может прочитать этот конкретный видеофайл по любой причине. Вы пробовали https://github.com/wseemann/FFmpegMediaMetadataRetriever? –
он не может прочитать каждый файл, который я даю ему, записанный с моей камеры .... так что нет - не тестировал библиотеку, но, возможно, проверит ее позже - спасибо заранее –
Что я говорю, проблема может быть связанными с кодеком, который использует камера, или как он записывает метаданные. Кроме того, можете ли вы разместить образец файла? –