美文网首页程序员
AudioUnit Mac(VoiceProcessingIO)

AudioUnit Mac(VoiceProcessingIO)

作者: 妖精不语 | 来源:发表于2018-06-07 20:03 被阅读7次

    最近要支持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采集,并把采集数据延迟播放的功能。

    相关文章

      网友评论

        本文标题:AudioUnit Mac(VoiceProcessingIO)

        本文链接:https://www.haomeiwen.com/subject/bmrnsftx.html