使用 AVAudioSessionCategoryPlayAndRecord 启用响铃/静音开关

Posted

技术标签:

【中文标题】使用 AVAudioSessionCategoryPlayAndRecord 启用响铃/静音开关【英文标题】:Enable ring/silent switch with AVAudioSessionCategoryPlayAndRecord 【发布时间】:2013-04-08 14:03:46 【问题描述】:

当我想使用 AVAudiosessionCategoryPlayAndRecord 同时播放和录制音频时,如何使物理响铃/静音开关再次工作?我只是无法在任何地方找到答案。

【问题讨论】:

您能详细说明一下吗? 如果我这样设置音频会话: AVAudioSession *audioSession = [AVAudioSession sharedInstance]; [audioSession setCategory:AVAudioSessionCategoryPlayAndRecord 错误:&error];该开关不再使我的播放静音。我想覆盖这种行为 【参考方案1】:

AVAudioSessionCategoryPlayAndRecord 专为以音频为中心的应用程序而设计,应用程序的目的是播放音乐。设置此类别时,静音开关或屏幕锁定不会使音频静音。 VOIP 应用和音乐应用需要这种行为。

如果您希望通过静音开关使音频静音,则需要在不录制时将类别切换为 AVAudioSessionCategoryAmbient 或 AVAudioSessionCategorySoloAmbient。

如果您可以观看 WWDC 开发者视频,我建议您观看“WWDC 2010 session 412 Audio Development for iPhone OS part 1”。

【讨论】:

我想我想做的事情根本不可能。哦,好吧,iOS的乐趣

以上是关于使用 AVAudioSessionCategoryPlayAndRecord 启用响铃/静音开关的主要内容,如果未能解决你的问题,请参考以下文章

连接蓝牙耳机时无法切换到扬声器输出

Swift实现iOS录音与播放音频功能

应用程序运行时无法将蓝牙耳机与 AVAudioSessionCategoryPlayAndRecord 连接

测试使用

第一篇 用于测试使用

在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?