同时使用 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 在为导航栏设置动画的同时录制音频时发生中断时,我们如何停止并保存录制?