同时使用 AVAudioRecorder 和 AVAudioPlayer (或另一种收听和播放声音的方式)

Posted

技术标签:

【中文标题】同时使用 AVAudioRecorder 和 AVAudioPlayer (或另一种收听和播放声音的方式)【英文标题】:Using AVAudioRecorder and AVAudioPlayer at the same time (or alternative ways of listening for sound and playing sound) 【发布时间】:2010-11-23 11:50:26 【问题描述】:

这有什么不可行的原因吗?

我正在测试麦克风中的声音,并在注册声音时播放循环音效。

在 iPod touch 上这似乎可以正常工作 - 在 iPhone 上,虽然音效要么根本不播放,要么非常安静。

有什么想法吗?还是有其他选择?

谢谢

【问题讨论】:

iPhone 可能是通过听筒而不是扬声器播放声音。你能验证一下吗? 是的,只是在我录制的时候。当我在没有录音机的情况下播放声音时,它会通过扬声器播放......我该如何解决这个问题?谢谢 这可能是一个反反馈功能。 是的,彼得说得对。一旦我使用下面的代码通过扬声器输出它,它就会进入一个连续的循环,因此整个事情都不起作用。 :( 【参考方案1】:

由于某种原因,我不得不在播放声音之前输入这段代码:

UInt32 sessionCategory = kAudiosessionCategory_MediaPlayback;
        AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);    
        UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
        AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&audioRouteOverride);

停止通过听筒播放。

【讨论】:

我从 AVAudioPlayer 获得了非常安静的初始声音(可能来自听筒)。我也有 AVAudioRecorder。这个 sn-p 代码为我修复了它,即使在使用耳机时也是如此。谢谢。

以上是关于同时使用 AVAudioRecorder 和 AVAudioPlayer (或另一种收听和播放声音的方式)的主要内容,如果未能解决你的问题,请参考以下文章

在使用 AVAudioRecorder 在为导航栏设置动画的同时录制音频时发生中断时,我们如何停止并保存录制?

AVAudioRecorder & AVAudioPlayer - 内置扬声器的声音输出,如何更改?

在 iOS 中同时录制和播放音频

同时播放和录制

AVAudioRecorder 不保存文件

关于使用 AVAudioPlayer 自动录制和自动播放 AVAudioRecorder