2012-02-19 16 views
2

私のAndroidアプリは音声をAMRWAVの両方で記録します。私のアプリケーションでは、一時停止した位置に最初のオーディオファイルを挿入する必要があります。私はWAVのファイルで正しく行いましたが、挿入後のAMRファイルはAndroid MediaPlayerで再生できません。挿入位置に達するとエラーが発生します。同じファイルがAMRプレーヤーで正常に再生されます。録音済みのオーディオ(AMRとWAV)ファイルを別のファイルに挿入する

Iに従う手順は、次のとおり休止位置点で最大FILE1からデータを1.Writing

FILE2

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

3から挿入されるデータを2.Writing

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++; 
} 

。休止位置の後にfile1から残りのデータを書き込む

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

私は何をしましたか?

答えて

0

新しいデータが同じアルゴリズムで圧縮されていても、圧縮されたストリーム(AMR、MP3、AACなど)のデータを必ずしも新しいデータで置き換えることはできません。
そのような置換えが動作することを保証するには、データを解凍する必要があります。置換えを行い、再度圧縮します。これにより、オーディオ品質がさらに低下する可能性が最も高くなります。

関連する問題