iOS 铃声开关使网络音频静音

Posted

技术标签:

【中文标题】iOS 铃声开关使网络音频静音【英文标题】:iOS ringer switch mutes web audio 【发布时间】:2016-11-24 14:39:44 【问题描述】:

在我正在进行的一个项目中,我注意到在 ios 上,当铃声开关关闭时,声音会被静音。该项目基于 CreateJS,声音由 SoundJS 管理。

令人沮丧的是,其他使用声音/媒体的网站(youtube、facebook、soundhound、spotify 等)似乎不受铃声开关的影响。

我在几部 iOS 版本从 9.2 到 10.1.1 的不同 iPhone 上进行了测试:都出现了相同的问题。

这种行为可能是什么原因?是否有任何文档可以解释如何解决它?

【问题讨论】:

【参考方案1】:

旧线程,但我之前遇到过这个问题并回答了一个关于 SO 的问题。

基本上,iOS 会在铃声类别中播放网络音频。我在媒体类别上播放 html 音频(如预期的那样)。您可以通过在后台播放无声循环 html 声音来强制两者在媒体类别上播放。这确实有一个副作用 - 如果在 safari 打开时屏幕关闭,您现在可以选择播放游戏音频并在通知视图和锁定屏幕上切换播放/暂停。下面链接的解决方案不是一个超级强大的解决方案(即副作用),但它肯定会获得您正在寻找的行为。希望这会有所帮助!

在这里查看我的答案- https://***.com/a/46839941/2103488

【讨论】:

【参考方案2】:

我不确定这是否是您的声音在铃声打开时无法播放的原因,但在 Mobile Safari 中自动播放声音有一个限制 - 它们必须由触摸事件触发 (http://www.ibm.com/developerworks/library/wa-ioshtml5/)

我假设您正在制作一个 web 应用程序,而不是在应用程序中使用 Phonegap 或浏览器视图之类的东西。如果是后者,您可以尝试查看 AVAudioSession 类别,这些类别决定了您的应用与其他应用的音频混合以及被铃声开关静音/不静音等内容。

【讨论】:

触摸初始化工作正常,当铃声开关打开时声音确实工作。但我希望它在铃声关闭时也能正常工作,因为这是在其他网站上观察到的行为。 是的,它是一个 web 应用程序,与 phonegap 或 webviews 无关。我实际上正在 Safari 中进行测试,以避免 Chrome 的 webview 问题。

以上是关于iOS 铃声开关使网络音频静音的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 中检测铃声开关状态?

如何使来自 UIWebView 的音频静音

iPhone:如何播放忽略音量和铃声开关设置的声音?

iPhone SDK:设置音频路由并在静音开关打开时静音音频

在 iOS 5 中检测 iPhone 静音开关

AVFoundation 添加音频输入使音频播放静音