我正在使用AmrInputStream将PCM编码的wav文件转换为Android中的amr文件。我使用了下面的代码:
converting PCM-16 to AMR using AmrInputStream
一切正常,并且还生成了amr文件。但是,当我尝试使用MeidaPlayer播放时,它会抛出以下异常:
java.io.IOException: Prepare failed.: status=0xFFFFFFFC
at android.media.MediaPlayer.prepare(Native Method)
我注意到在上面的帖子中,它提到:“需要将#AMR!\ n标签添加到输出文件中才能播放。”但我不知道该怎么做。请帮忙!
答案 0 :(得分:2)
好的,我让它运转了。需要在输出文件的前6个字节中添加标记:
InputStream inStream;
inStream = new FileInputStream(wavFilename);
AmrInputStream aStream = new AmrInputStream(inStream);
File file = new File(amrFilename);
file.createNewFile();
OutputStream out = new FileOutputStream(file);
out.write(0x23);
out.write(0x21);
out.write(0x41);
out.write(0x4D);
out.write(0x52);
out.write(0x0A);
byte[] x = new byte[1024];
int len;
while ((len=aStream.read(x)) > 0) {
out.write(x,0,len);
}
out.close();