我正在尝试实现类似于长笛的东西,当你吹麦克风时,它将开始从扬声器播放一个音符。出于这个原因,我试图VoiceProcessingIO
从输入麦克风中减去播放的音符(输出扬声器)。
出于某种原因,我注意到VoiceProcessingIO
不能与AUSampler
. 我修改了 Apple Sampled " LoadPresetDemo " 并更改了行:
cd.componentSubType = kAudioUnitSubType_RemoteIO
和
cd.componentSubType = kAudioUnitSubType_VoiceProcessingIO;
然后你就听不到任何播放了
当我使用以下音频单元方案时,我得到了相同的效果(没有声音):
VoiceProcessingIO (input mic) --> processing function (if audio level > thrs
then feed MusicDeviceMIDIEvent)
AUSampler --> VoiceProcessingIO (output speaker)
但是,当我使用以下方案时:
VoiceProcessingIO (input mic) --> processing function (if audio level > thrs
then feed MusicDeviceMIDIEvent)
AUSampler --> RemoteIO (output speaker)
输出扬声器音量大大降低。它接缝的问题与此有关: 在 iOS 中使用两个音频单元进行同时 I/O 是否安全?
我还测试了这里的示例: https ://code.google.com/p/ios-coreaudio-example/downloads/detail?name=Aruts.zip&can=2&q=
它可以在没有 AUSampler 的情况下使用以下方案:
VoiceProcessingIO (input mic) --> processing function --> VoiceProcessingIO (output speaker)
问题是:
有什么方法可以配合使用VoiceProcessingIO
吗AUSampler
?VoiceProcessing
或者是通过渲染回调将一些数据提供给输出的唯一方法
?