iPhone SDK audioSession问题

标签 iphone objective-c session audio

在我的应用程序中,我同时录制和播放音频。该应用程序即将完成。但是有一件事让我很烦。当 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/

相关文章:

iOS 8 自定义键盘方向更改

iphone - MFMailComposeViewController 不关闭

iphone - 显示UITableView之类的UIActionsheet样式?

ios - 按时间错误使用 NSSortDescriptor 排序(带有核心数据)

Laravel 如何在 session 中存储额外的数据/值 Laravel

session - 如何在Grails中唯一标识请求?

ios - iPhone 仅在 iPhone 6 及更高版本中重启

objective-c - NSToolbar 在 Leopard 和 Snow Leopard 中看起来不同

ios - 如何向 GET 请求添加 header 字段和参数?

php - 使用非零的数据库编号时,Laravel 6 redis session 不存储到 redis