2

AMR我的Android 应用程序以两种WAV格式录制音频。我的应用程序需要将第二个录制的音频文件插入到第一个文件中的暂停位置。我用WAV文件做对了,但是AMR插入后的文件无法在 Android MediaPlayer 中播放,当它到达插入位置时会出现一些错误。但相同的文件在 AMR 播放器中播放正常。

我遵循的步骤是:

1.从file1写入数据到暂停位置:

raf3=new RandomAccessFile(result,"rw");
raf3.setLength(0);
int d=0;
//Write data from record1 upto the pause position
while(d!=pos)
{
raf3.write(bytes[d]);
d++;
}

2.从file2写入要插入的数据

//write all the data from record 2 
int l=0;
raf3.writeBytes(" ");
while(l!=bytesread1)
{
raf3.write(bytes1[l]);
l++;
}

3.暂停位置后从file1写入剩余数据

while(d!=size){
raf3.write(bytes[d]);
d++;
}

我所做的有什么问题吗?

4

1 回答 1

0

您不一定要用新数据替换压缩流(AMR、MP3、AAC 等)中的数据,即使新数据是用相同的算法压缩的。
为了保证这种替换工作,您需要解压缩数据,进行替换,然后再次压缩。这很可能会导致音频质量进一步下降。

于 2012-10-29T15:11:28.967 回答