2

我正在尝试实现类似于长笛的东西,当你吹麦克风时,它将开始从扬声器播放一个音符。出于这个原因,我试图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)

问题是:

有什么方法可以配合使用VoiceProcessingIOAUSamplerVoiceProcessing或者是通过渲染回调将一些数据提供给输出的唯一方法 ?

4

0 回答 0