在我的应用程序中,我同时录制和播放音频。该应用程序即将完成。但是有一件事让我很烦。当 Audio Session 设置为 PlayAndRecord 时,与 SoloAmbient 类别的相同声音相比,声音变得安静。有什么方法可以使用 PlayAndRecord 使声音更大吗?
最佳答案
当你使用session进行播放和录音时,播放是从手机的喇叭里出来的,否则是从手机底部的喇叭里出来的。这是为了防止反馈。你可以像这样覆盖它(但要注意反馈,如果你不是同时做这两个事情,这不是问题)
//when the category is play and record the playback comes out of the speaker used for phone conversation to avoid feedback
//change this to the normal or default speaker
UInt32 doChangeDefaultRoute = 1;
AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof (doChangeDefaultRoute), &doChangeDefaultRoute);
此代码适用于 3.1.2,您必须以不同的方式执行更早的 sdk。
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
status = AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute, sizeof (audioRouteOverride), &audioRouteOverride);
你必须小心这个方法,即使你插上耳机它也会覆盖,你必须监控中断并相应地改变路线。现在使用 3.1.2 好多了
关于iPhone SDK audioSession问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1613556/