Сбой MediaPlayer.setDataSource для аудиофайла AMR - PullRequest
4 голосов
/ 15 января 2011
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 Ответ

1 голос
/ 25 марта 2011

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

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

...