2

AMR私の Android アプリは、 と の両方の形式でオーディオを録音しWAVます。そして、私のアプリケーションは、一時停止された位置で最初のファイル内に 2 番目に録音されたオーディオ ファイルを挿入する必要があります。私は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 に答える