Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当用户将手机切换到静音状态时,如何防止iOS VoIP应用程序播放音频?_Ios_Iphone_Audio_Voip - Fatal编程技术网

当用户将手机切换到静音状态时,如何防止iOS VoIP应用程序播放音频?

当用户将手机切换到静音状态时,如何防止iOS VoIP应用程序播放音频?,ios,iphone,audio,voip,Ios,Iphone,Audio,Voip,我正在iOS上构建一个VoIP应用程序,我正在使用AVAudioSessionCategoryPlayAndRecord的AVAudioSession类别,建议用于需要不断播放和录制音频的VoIP应用程序 但是,当用户将iPhone铃声切换到静音模式时,VoIP应用程序仍会为来电播放声音。这不是期望的行为 当用户的手机处于静音状态时,是否有办法防止来电播放音频,但仍允许他们接听电话并恢复音频?如果您查看音频会话类别的文档,您可以看到,AVAudioSessionCategoryPlayAndRe

我正在iOS上构建一个VoIP应用程序,我正在使用
AVAudioSessionCategoryPlayAndRecord
AVAudioSession
类别,建议用于需要不断播放和录制音频的VoIP应用程序

但是,当用户将iPhone铃声切换到静音模式时,VoIP应用程序仍会为来电播放声音。这不是期望的行为


当用户的手机处于静音状态时,是否有办法防止来电播放音频,但仍允许他们接听电话并恢复音频?

如果您查看
音频会话类别的文档,您可以看到,
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

我想我找到了一个适用于VoIP应用程序的解决方案。如果手机设置为静音,我希望手机显示警报并振动,而不是播放可听铃声

我可以通过使用本地通知并将声音移出应用程序并将其添加到通知本身来解决这个问题。通过指定声音文件作为通知的一部分,iOS将处理是播放音频还是振动手机。这由手机侧面的响铃/静音开关的位置决定