考虑到分割的持续时间,是否可以将录制的wav文件拆分为iOS上的多个wav文件?

cod*_*ath 2 iphone audio wav ios

我想从录制的wav文件中提取一些片段.关于这个问题,我没有在网上找到太多帮助.我知道我们不能从像mp3这样的压缩格式中分离出来,但我们如何用caf/wav文件呢?

Bam*_*rld 7

您可以考虑的一种方法是计算和读取音频文件中的字节并将其写入新文件.因为您正在处理LPCM格式,所以计算相对简单.

例如,如果您有一个16位单声道LPCM音频文件,采样频率为44.1kHz(持续时间为1分钟),则总共(60秒x 44100Hz)2,646,000个采样.每个样本的时间2个字节总共提供5,292,000个字节.如果你想要10秒到30秒的音频,那么你需要读取882,000到2,646,000的字节并将它们写入一个单独的文件.

有一些代码涉及但可以使用AudioToolbox框架中的音频文件服务类来完成.

您需要使用的函数是AudioFileOpenURL,AudioFileCreateWithURL,AudioFileReadBytes,AudioFileWriteBytesAudioFileClose.

算法会是这样的 -

首先设置一个AudioFileID,它是一个传递给AudioFileCreateWithURL函数的opaque类型.然后使用AudioFileOpenURL打开要拼接的文件.

计算要复制的内容的开始和结束字节.

接下来,在循环中,最好读取字节并将它们写入文件.AudioFileReadBytesAudioFileWriteBytes允许您这样做.好的是,您可以读取和写入您在循环的每次迭代中决定的任何大小字节.

完成后使用AudioFileClose关闭新文件和原始文件.

然后对要写入的每个文件(音频提取)重复.

另外,您可以先通过将压缩格式转换为LPCM来拆分压缩格式.