我们的应用程序使用remoteIO(音频单元)从麦克风和其上的DSP实时获取音频输入,它具有一个回调函数,它为我提供了缓冲区,并且我正在处理它。播放并录音 - AudioSessionSetProperty ..?
同时,我们需要在avAudioPlayer上播放声音。
我把我的init这样的:(路线的声音扬声器,让它播放和录制)
UInt32 sessionCategory = kAudioSessionCategory_PlayAndRecord;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&audioRouteOverride);
但后来我看到了一些奇怪的事情。这些声音是从小型扬声器播放的,也就是您用来打电话的耳朵。
然后我做了一个小把戏。 我已经看到,为了真正将声音发送给扬声器,我必须演奏一些东西,同时执行上面的4行。 如果我这样做了1次,那么声音会永远回到扬声器。 我用一个调用该方法的计时器来做到这一点,当这个方法执行它们的时候,我用avaudioPlayer播放声音,然后 - 它修复了它和声音路径。
任何人有任何解决方案,或解释有关的东西? 我真的需要通过扬声器播放声音,没有任何窍门。