Сбой 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 )
,
Попробуйте использовать один из других и посмотрите, работает ли это.