首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用RandomAccessFile添加音频

使用RandomAccessFile添加音频
EN

Stack Overflow用户
提问于 2011-05-31 02:42:36
回答 1查看 4.9K关注 0票数 1

我使用以下代码将SD卡中存在的尽可能多的wav文件附加到单个文件中。audFullPath是一个包含音频文件路径的数组列表。这是正确的。当我玩recordedaudio1的时候,在做完这件事之后。它只播放第一个文件。我想播放所有的文件。任何建议..

代码语言:javascript
复制
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));
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-31 02:48:22

您不能以这种方式附加WAV文件。这是因为每个WAV都有特殊的格式:

最简单的WAV文件如下所示:

代码语言:javascript
复制
[RIFF HEADER]
...
totalFileSize    

[FMT CHUNK]
...
audioFormat
frequency
bytesPerSample
numberOfChannels
...

[DATA CHUNK]
dataSize
<audio data>

您需要做的是:

  1. 确保所有WAV文件都是兼容的:相同的audioFormat、频率、每采样位数、通道数等。
  2. 创建具有总文件大小的适当RIFF标头
  3. 创建适当的FMT标头
  4. 创建具有总音频数据大小的适当DATA标头

这个算法肯定适用于LPCM,ULAW,ALAW音频格式。对其他人不太确定。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6179709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档