我正在iOS上构建一个VoIP应用程序,我正在使用AVAudioSessionCategoryPlayAndRecord
的AVAudioSession
类别,该类别建议用于需要不断播放和录制音频的VoIP应用程序。如何防止我的iOS VoIP应用程序在用户将手机切换为静音时播放音频?
但是,当用户将iPhone铃声切换到静音模式时,VoIP应用程序仍会播放来电呼叫。这不是期望的行为。
当用户的手机静音时,是否有办法阻止来电播放音频,但是仍然允许他们应答呼叫并恢复音频?
我正在iOS上构建一个VoIP应用程序,我正在使用AVAudioSessionCategoryPlayAndRecord
的AVAudioSession
类别,该类别建议用于需要不断播放和录制音频的VoIP应用程序。如何防止我的iOS VoIP应用程序在用户将手机切换为静音时播放音频?
但是,当用户将iPhone铃声切换到静音模式时,VoIP应用程序仍会播放来电呼叫。这不是期望的行为。
当用户的手机静音时,是否有办法阻止来电播放音频,但是仍然允许他们应答呼叫并恢复音频?
我想我找到了适用于VoIP应用程序的解决方案。如果手机设置为静音,我希望手机显示警报并振动,而不是播放可听响铃。
我可以通过使用本地通知并将声音移出应用程序并将其添加到通知本身来解决此问题。通过将声音文件指定为通知的一部分,iOS将处理是播放音频还是振动手机。这取决于手机侧面的Ring/Silent开关的位置。
Here's an Apple article on adding a sound to a local notification.
如果在文档的AVAudioSession Categories
看一看这里,你可以看到,AVAudioSessionCategoryPlayAndRecord
遗憾的是不服从手机的沉默,如下所示:
Your audio continues with the Silent switch set to silent and with the screen locked. (The switch is called the Ring/Silent switch on iPhone.)
如果你想在音频停止时你把手机变成无声的,你应该使用AVAudioSessionCategoryAmbient
。