AudioUnit Mac(VoiceProcessingIO)

最近要支持MAC版的音频采集与播放,所以需要把IOS上现有的AudioUnit代码进行移植。虽然文档里说MAC支持VoiceProcessingIO 的AudioUnit,可MAC上与IOS上还是有些不一样,踩了许多坑,MAC的资料还很难找,纠结了好几天,终于弄通了。所以决定写下来,帮助后来人。

发现的差别有如下几点:
1.kAudioOutputUnitProperty_EnableIO 属性在 MAC上不能设置。在Mac上,input和output都是默认打开的,并且不允许修改。

2.SampleRate在input和output上,必须一样。不然会报错。ios似乎没有这样的限制。

  1. 设置bufferSize的属性不一样。在Mac上使用kAudioDevicePropertyBufferFrameSize,而在ios上使用 kAudioSessionProperty_PreferredHardwareIOBufferDuration.

4.最坑爹的是,测试中发现, kAudioFormatFlagIsSignedInteger 可以用于采集,但是用于播放,则会出现没有声音。需要使用kAudioFormatFlagIsFloat。

另外还有个非AudioUnit的问题:
Capabilities下的App Sandbox,要么关闭,如果打开,记得开里面的各种权限。不然会没有网络。

AudioUnitMAC的DEMO地址:https://github.com/pinkydodo/AudioUnitMac
里面实现了MAC采集,并把采集数据延迟播放的功能。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,020评论 3 119
  • 我只能说作者也是人才一枚! 数一份几斤重的报纸有多少文章多少图片多少广告?Are you kidding me? ...
    蛋花花0_0阅读 314评论 0 1
  • 文/苗文 今夜北方的春风骤起 红尘中 他把心丢在了灯红酒绿的喧嚣里 三十而立 他们日渐消瘦的孤独背影 踱步无力的成...
    耳立365阅读 314评论 3 1
  • 1. 注册右键菜单 打开windows powershell的管理员模式执行: 但有可能出现右键菜单总是打开cmd...
    Yvettre阅读 2,004评论 1 2
  • 刘岳想初夏,谁也不知道他在多少个夜晚寂静无声的哭,谁也看不到他几次开着车走神差一点出事,谁也想不到他每次都是从有初...
    田伯虎阅读 282评论 0 1