如何从 iOS 中的音频剪辑中检索 PCM 样本数据?

Posted

技术标签:

【中文标题】如何从 iOS 中的音频剪辑中检索 PCM 样本数据?【英文标题】:How can I retrieve PCM sample data from an audio clip in iOS? 【发布时间】:2015-06-24 06:20:46 【问题描述】:

我需要从 ios 中的 .wav 文件(或任何其他格式)中提取 PCM 音频样本。我还想使用麦克风从现场录音中获取相同的数据。

这可以使用 AVFoundation 来完成,还是我需要使用较低级别的 CoreAudio API?非常感谢 Swift 中的一个示例。我只是在寻找与单个音频样本相对应的基本浮点数组,以用于信号处理。

【问题讨论】:

嗨 Clay,很抱歉,如果您创建了这种类型的代码,如果您不介意,请提供给我。 【参考方案1】:

AVFoundation 包含一个名为AVAssetReader 的类,可用于从声音文件中获取音频数据。 https://developer.apple.com/library/mac/documentation/AVFoundation/Reference/AVAssetReader_Class/index.html#//apple_ref/occ/instm/AVAssetReader/addOutput:

但是,最直接的方法可能是使用扩展音频文件服务和ExtAudioFileRead 函数:https://developer.apple.com/library/prerelease/ios/documentation/MusicAudio/Reference/ExtendedAudioFileServicesReference/index.html#//apple_ref/c/func/ExtAudioFileRead

扩展音频文件服务是一个 C API,因此您必须处理从 Swift 调用它。

【讨论】:

以上是关于如何从 iOS 中的音频剪辑中检索 PCM 样本数据?的主要内容,如果未能解决你的问题,请参考以下文章

哪个 API 从 ios 和 osx 中的缓冲区播放音频?

从幅度样本创建音频文件

如何使用 fread 和 fwrite 从文件中读取 pcm 样本?

iOS 10.2 上的 Swift 3:如何从麦克风订阅单个样本?需要实时处理音频

Android中PCM音频样本的上采样

如何从 iOS 上的 AudioQueue 服务获取样本