私はアンドロイドで働いています。2 つの wave ファイルをマージして、3 つ目のファイルを作成したいと考えています。このために、2 つの入力ストリームを作成し、それらの入力ストリームを 1 つの出力ストリーム ファイルに書き込もうとしています。
これは私のコードです:-
File file = new File("/sdcard/z.wav");
File file1 = new File("/sdcard/zz.wav");
InputStream is = new FileInputStream(file);
InputStream is1 = new FileInputStream(file1);
// Get the size of the file
long length = file.length();
long length1 = file1.length();
// Create the byte array to hold the data
byte[] bytes = new byte[(int)length];
byte[] bytes1 = new byte[(int)length1];
// Read in the bytes
int offset = 0;
int numRead = 0;
while (offset < (int)length &&( numRead=is.read(bytes, offset, bytes.length-offset)) >= 0) {
offset += numRead;
}
int offset1 = 0;
int numRead1 = 0;
while (offset1 < (int)length1 &&( numRead1=is1.read(bytes1, offset1, bytes1.length-offset1)) >= 0) {
offset1 += numRead1;
}
FileOutputStream fos=new FileOutputStream("sdcard/guruu.wav");
Log.v("Trying Activity","before first write");
fos.write(bytes);
fos.write(bytes1,0,bytes1.length);
fos.write(bytes);
fos.close();
is.close();
is1.close();
出力ファイル guruu.wav を再生すると、これはfile1の唯一の再生ファイルであり、file2 のコンテンツは再生されません。私が犯した間違いを教えてください。これを行う他の方法はありますか?
私はこれに非常に慣れていないので、反対票を投じないでください。
前もって感謝します。