MediaPlayerでオーディオファイルを再生しようとしています。 MediaPlayerでバイト配列を再生したい。これどうやってするの?私はチェックしましたthisMediaPlayerでバイト配列を再生する - Android
public void writeSamples(byte[] samples, int length)
{
// track.write(samples, 0, length);
File tempMp3;
try {
tempMp3 = File.createTempFile("kurchina", ".mp3");
tempMp3.deleteOnExit();
FileOutputStream fos = new FileOutputStream(tempMp3);
fos.write(samples);
fos.close();
// Tried reusing instance of media player
// but that resulted in system crashes...
MediaPlayer mediaPlayer = new MediaPlayer();
// Tried passing path directly, but kept getting
// "Prepare failed.: status=0x1"
// so using file descriptor instead
FileInputStream fis = new FileInputStream(tempMp3);
mediaPlayer.setDataSource(fis.getFD());
mediaPlayer.prepare();
mediaPlayer.start();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
しかし、そのオーディオが再生されていません。それは、SDカードに多くのファイルを生成しているだけです。そして、このエラーを与えること:
06-06 11:02:59.191: E/MediaPlayer(1831): Unable to to create media player
06-06 11:02:59.191: W/System.err(1831): java.io.IOException: setDataSourceFD failed.: status=0x80000000
06-06 11:02:59.201: W/System.err(1831): at android.media.MediaPlayer.setDataSource(Native Method)
06-06 11:02:59.201: W/System.err(1831): at android.media.MediaPlayer.setDataSource(MediaPlayer.java:749)
06-06 11:02:59.201: W/System.err(1831): at org.vinuxproject.sonic.SonicTest$1.run(SonicTest.java:178)
06-06 11:02:59.201: W/System.err(1831): at java.lang.Thread.run(Thread.java:1096)
私を助けてください。どんな種類の助けにも感謝します。あなたのコメントに基づいて
おかげ
あなたのコードを追加します。スニペットと誰かが助けることができるでしょう。 –
FDに加えてオフセットと長さをとるsetDataSourceバリアントを試してみることをおすすめします。生成されたmp3ファイルは音楽アプリケーションで再生されますか?また、deleteOnExitはAndroid/Dalvikでは便利ではありません。 – dagalpin
アプリケーションで再生されているファイルがありません。どうかお手伝いください –