Сбой MediaPlayer.setDataSource для аудиофайла AMR

01-15 00:57:08.660: WARN/System.err(25286): java.io.IOException: setDataSourceFD failed.: status=0x80000000
01-15 00:57:08.660: WARN/System.err(25286):     at android.media.MediaPlayer.setDataSource(Native Method)
01-15 00:57:08.660: WARN/System.err(25286):     at android.media.MediaPlayer.setDataSource(MediaPlayer.java:854)
...

... при попытке воспроизведения локального аудиофайла AMR из каталога кэша приложения. Это происходит в HTC Magic, HTC Desire. Аудиофайл AMR записан SonyEricsson xperia x10 mini и загружен из Интернета.

MediaPlayer создается следующим образом:

MediaPlayer player = new MediaPlayer();
player.setOnCompletionListener(this);
player.setOnErrorListener(this);
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
 FileInputStream fis = new FileInputStream(filePath);
 player.setDataSource(fis.getFD());
} catch (Exception e) {
 ...
}

Есть идеи?

1 ответ

Я заметил, что определенные вызовы setDataSource могут не работать на разных устройствах (возможно, из-за индивидуальных ошибок в проигрывателе для конкретной платформы). Например, что не удается использовать setDataSource( FileDescriptor ) может нормально работать с setDataSource( Context, Uri ) или же setDataSource( String ),

Попробуйте использовать один из других и посмотрите, работает ли это.

Другие вопросы по тегам