美文网首页程序员
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)

    最近要支持MAC版的音频采集与播放,所以需要把IOS上现有的AudioUnit代码进行移植。虽然文档里说MAC支持...

  • 音频采集

    音频采集 音频采集的方式 AudioUnit音频单元 AudioUnit总结 最底层 AVFoundation...

  • AudioUnit 框架详细解析

    1. AudioUnit框架详细解析(一) —— 基本概览2. AudioUnit框架详细解析(二) —— 关于A...

  • iOS使用AudioUnit/AudioQueue实现耳返功能

    首先理清思路我这边使用AudioUnit录音,AudioQueue播放1、创建AudioUnit对象,并初始化设置...

  • CoreAudio基础概念

    1.AudioUnit 在所有API中,AudioUnit延迟最短,使用最灵活.代价很复杂。 2.Audio Fi...

  • iOS AudioUnit 总结

    iOS AudioUnit 总结 iOS 的 AudioUnit 功能十分强大,使用图的形式连接各个节点,来实现我...

  • iOS音频-audioUnit总结

    在看LFLiveKit代码的时候,看到音频部分使用的是audioUnit做的,所以把audioUnit学习了一下。...

  • AudioUnit简介

    AudioUnit简介 AudioUnit这个名字取得还是比较形象的,它的主体就是一系列的unit,不同unit能...

  • AudioUnit

    转至 :http://www.qingpingshan.com/m/view.php?aid=386657 声音的...

  • AudioUnit

    在iOS平台上,所有的音频框架底层都是基于AudioUnit实现的。较高层次的音频框架包括:MediaPlayer...

网友评论

    本文标题:AudioUnit Mac(VoiceProcessingIO)

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