CXXAudioUtilities

精选 C++ 类,简化 Core Audio 和 Audio Toolbox 中的常见操作。

注意

需要 C++17。

安装

Swift Package Manager

在 Xcode 中添加对 https://github.com/sbooth/CXXAudioUtilities 的软件包依赖。

手动或自定义构建

  1. 克隆 CXXAudioUtilities 仓库。
  2. swift build.

CXXAudioUtilities

CoreAudioTypes 包装器

C++ 类 描述
SFB::CABufferList 一个类,使用特定的格式、帧容量和帧长度包装 Core Audio 的 AudioBufferList
SFB::CAChannelLayout 一个类,包装 Core Audio 的 AudioChannelLayout
SFB::CAStreamBasicDescription 一个类,扩展 Core Audio 的 AudioStreamBasicDescription 的功能
SFB::CATimeStamp 一个类,扩展 Core Audio 的 AudioTimeStamp 的功能
SFB::CAException std::error_category,用于将 Core Audio 错误作为异常处理

AudioHardware 包装器

C++ 类 描述
SFB::CAPropertyAddress 一个类,扩展 Core Audio 的 AudioObjectPropertyAddress 的功能
SFB::CAAudioObject 一个围绕 HAL 音频对象的包装器
SFB::CAAudioDevice 一个围绕 HAL 音频设备的包装器
SFB::CAAudioStream 一个围绕 HAL 音频流的包装器
SFB::CAAudioSystemObject 一个围绕 kAudioObjectSystemObject 的包装器

AudioToolbox 包装器

C++ 类 描述
SFB::AudioFileWrapper 一个围绕 AudioFile 的基本包装器,仿照 std::unique_ptr
SFB::ExtAudioFileWrapper 一个围绕 ExtAudioFile 的基本包装器,仿照 std::unique_ptr
SFB::CAAUGraph 一个围绕 AUGraph 的包装器
SFB::CAAudioFile 一个围绕 AudioFile 的包装器
SFB::CAExtAudioFile 一个围绕 ExtAudioFile 的包装器
SFB::CAAudioFormat 一个围绕 AudioFormat 的包装器
SFB::CAAudioConverter 一个围绕 AudioConverter 的包装器

环形缓冲区

C++ 类 描述
SFB::RingBuffer 一个通用环形缓冲区
SFB::AudioRingBuffer 一个支持非交错音频的环形缓冲区
SFB::CARingBuffer 一个支持带时间戳的非交错音频的环形缓冲区

实用工具类

C++ 类 描述
SFB::ByteStream 一个 ByteStream 提供对未类型化缓冲区的异构类型化访问
SFB::CFWrapper 一个围绕 Core Foundation 对象的包装器
SFB::DispatchSemaphore 一个围绕 dispatch_semaphore_t 的包装器
SFB::ScopeGuard 一个在销毁时调用函数的类
SFB::UnfairLock 一个围绕实现 C++ Lockableos_unfair_lock 的包装器
C++ 类 描述
SFB::AudioUnitRecorder 一个将 AudioUnit 的输出异步写入文件的类

许可证

MIT 许可证 下发布。