2014-12-09 1 views
1

Вот мой код:java.lang.RuntimeException: setDataSource failed: status = 0xFFFFFFED в android?

MediaMetadataRetriever metadataRetriever; 
metadataRetriever = new MediaMetadataRetriever(); 
metadataRetriever.setDataSource(mediaFile.getAbsolutePath()); 

я получаю исключение, как это:

E/AndroidRuntime(3247): Caused by: java.lang.RuntimeException: setDataSource failed: status = 0xFFFFFFED 
E/AndroidRuntime(3247):  at android.media.MediaMetadataRetriever.setDataSource(Native Method) 
E/AndroidRuntime(3247):  at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:70) 
E/AndroidRuntime(3247):  at com.skyworth.tvfileexplorer.utils.FileUtils.getPreview(FileUtils.java:544) 
E/AndroidRuntime(3247):  at com.skyworth.tvfileexplorer.app.folders.CardPreviewer.doInBackground(CardPreviewer.java:33) 
E/AndroidRuntime(3247):  at com.skyworth.tvfileexplorer.app.folders.CardPreviewer.doInBackground(CardPreviewer.java:13) 
+0

Что разрешает mediaFile.getAbsolutePath()? –

+0

@WilliamSeemann mediaFile.getAbsolutePath() просто возвращает путь к файлу, например: /storage/emulated/0/Movies/test.mp4. Я думаю, что знаю проблему, потому что 'setDataSource' принимает' Uri' как параметр вместо 'file path'. Но как я могу получить uri из медиафайла? – roger

+0

setDataSource требует протокола. Просто добавьте «file: //» в начало пути. –

ответ

3

я получаю ту же ошибку, когда переосмысление MediaMetadataRetriever несколько раз. Изменено это, чтобы иметь одно статическое объявление, и проблема исчезла. Использование 4.4.2.