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

考虑到拆分的持续时间,是否可以在iOS上将录制的wav文件拆分为多个wav文件?,ios,iphone,audio,wav,Ios,Iphone,Audio,Wav,我想从录制的wav文件中提取一些剪辑。关于这个问题,我在网上找不到什么帮助。我知道我们不能从mp3这样的压缩格式中分离出来,但是我们如何使用caf/wav文件呢 > P>一种方法可以考虑从一个音频文件中计算和读取字节,并将它们写入一个新文件。由于您处理的是LPCM格式,因此计算相对简单 例如,如果您有一个以44.1kHz(持续时间为一分钟)采样的16位单声道LPCM音频文件,则您总共有(60秒x 44100Hz)2646000个采样。每个样本乘以2个字节,得到的总字节数为5292000字节。如果

我想从录制的wav文件中提取一些剪辑。关于这个问题,我在网上找不到什么帮助。我知道我们不能从mp3这样的压缩格式中分离出来,但是我们如何使用caf/wav文件呢

> P>一种方法可以考虑从一个音频文件中计算和读取字节,并将它们写入一个新文件。由于您处理的是LPCM格式,因此计算相对简单

例如,如果您有一个以44.1kHz(持续时间为一分钟)采样的16位单声道LPCM音频文件,则您总共有(60秒x 44100Hz)2646000个采样。每个样本乘以2个字节,得到的总字节数为5292000字节。如果你想要10秒到30秒的音频,那么你需要读取882000到2646000之间的字节,然后将它们写入一个单独的文件

其中涉及一些代码,但可以使用AudioToolbox框架中的类来完成

您需要使用的函数有AudioFileOpenURLAudioFileCreateWithURLAudioFileReadBytesAudioFileWriteBytesAudioFileClose

算法应该是这样的-

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

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

接下来,最好在循环中读入字节并将其写入文件AudioFileReadBytesAudioFileWriteBytes允许您执行此操作。好的是,您可以在循环的每次迭代中读取和写入您决定的任何大小的字节

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

然后对每个要写入的文件(音频提取)重复上述步骤


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

谢谢您提供的详细答案。我马上就来试试。欢迎光临。如果您不了解AudioStreamBasicDescription(ASBD),那么现在是阅读它的时候了。更多信息可以在苹果公司的核心音频概述文档中找到。效果很好。非常感谢您的帮助。您好@codeToDeath,请分享一些逻辑,您是如何实现音频wav文件分割成多个部分的。其实我也有类似的要求。