首页 > 解决方案 > 我应该使用 AVFoundation 或 CoreAudio 从文件或缓冲区中解码/转换音频吗?

问题描述

我想从缓冲区或音频文件中解码音频并将其写入缓冲区以在 macOS 和 iOS 上播放(我不想将其直接路由到硬件)。如果支持,我也希望能够将其转换为另一种格式。我应该使用 AVFoundation/CoreAudio API 中的哪些类/服务来做到这一点?

标签: iosmacosaudioavfoundationcore-audio

解决方案


AVFoundation有可以做所有这些事情的类。

  1. AVAudioFile用于将文件中的音频解码为 PCM ( AVAudioPCMBuffer)。
  2. AVAudioConverter用于格式之间的转换
  3. AVAudioEngine带一个AVAudioPlayerNode可以播放AVAudioPCMBuffers的

如果您需要更多CoreAudioAudioToolbox控制延迟、设备或遇到AVFoundation.


推荐阅读