在我的应用程序中,我同时录制和播放音频。该应用程序几乎完成。但是有一件事让我烦恼。当音频会话设置为PlayAndRecord时,与SoloAmbient类别的相同声音相比,声音变得安静。有没有什么办法可以使用PlayAndRecord让声音更响亮?
答案 0 :(得分:7)
当您使用会话进行播放和录制时,播放来自用于电话的扬声器,否则它会从位于电话底部的扬声器发出。这是为了防止反馈。你可以像这样覆盖它(但要注意反馈,如果你不同时做两件事就不要出问题)
//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
更好答案 1 :(得分:-1)
要求用户插入耳机?
耳机+麦克风组合不会遇到这个问题。
我不知道这是一个错误,是音频硬件的结果, 或者如果安静的播放只是故意的,并且是有趣的 获得更清晰录音的方式。
<强>更新强>
我发现设置PlayAndRecord会话会将您的音频路径更改为接收方 显然,该用例适用于电话应用程序,用户可以将设备放在他的耳边。
如果这不违反最低惊喜原则,我不知道是什么。