我使用以下代码将SD卡中存在的尽可能多的wav文件附加到单个文件中。audFullPath是一个包含音频文件路径的数组列表。这是正确的。当我玩recordedaudio1的时候,在做完这件事之后。它只播放第一个文件。我想播放所有的文件。任何建议..
File file=new File("/sdcard/AudioRecorder/recordedaudio1.wav");
RandomAccessFile raf = new RandomAccessFile(file, "rw");
for(int i=0;i<audFullPath.size();i++) {
f=new File(audFullPath.get(i));
fileContent = new byte[(int)f.length()];
System.out.println("Filecontent"+fileContent);
raf.seek(raf.length());
raf.writeBytes(audFullPath.get(i));
}发布于 2011-05-31 02:48:22
您不能以这种方式附加WAV文件。这是因为每个WAV都有特殊的格式:
最简单的WAV文件如下所示:
[RIFF HEADER]
...
totalFileSize
[FMT CHUNK]
...
audioFormat
frequency
bytesPerSample
numberOfChannels
...
[DATA CHUNK]
dataSize
<audio data>您需要做的是:
WAV文件都是兼容的:相同的audioFormat、频率、每采样位数、通道数等。RIFF标头FMT标头DATA标头这个算法肯定适用于LPCM,ULAW,ALAW音频格式。对其他人不太确定。
https://stackoverflow.com/questions/6179709
复制相似问题