2017-04-16 91 views
0

当用户回答问题时,我的网站正在播放声音。但我注意到,即使我将其置于静音模式,但在我的平板电脑(iPad)和移动设备(iPhone)上播放声音。而且我不希望手机/平板电脑在用户将其设备设置为静音模式(铃声)时播放声音。那么,我可以检测设备是否静音/静音,然后不播放任何声音?我在Safari和Chrome上进行了测试,无论铃声状态如何,它都会播放声音。如果移动设备被静音,Javascript可以检测到吗?

编辑:如果不可能读取这些信息,那么我的问题是如果有一种方法可以播放尊重用户静音偏好的声音吗?我使用的是jQuery的$("#correctsound").trigger('play'),显然这并不尊重这些设置。我们有不同的方式来播放将这些设置考虑在内的声音吗?

+0

可能重复的[Javascript:你能否读取系统卷?](http://stackoverflow.com/questions/5368596/javascript-can-you-read-the-systems-volume) –

回答

1

对您的问题的简单回答是。网页无法访问有关客户端的那种信息。这里更多的信息:Javascript: Can you read the systems volume?此外,需要注意的是内部监督办公室对铃声和媒体不同的音量设置是很重要的,根据Macworld

要掌握音量调节的关键是了解大多数的 上的声音你设备分为两类。 通用 音频包括音乐和其他媒体以及iPhone上的语音音量和所有设备上的FaceTime。 “铃声和提醒” 类别不仅包括iPhone铃声,还包括:FaceTime 铃声;时钟应用闹钟;通知和个人应用程序警报;键盘点击; 键盘点击;和其他应用程序的声音,如whoosh的 发送邮件。

换句话说,如果用户想要静音的音频从网页来了,就应该静音媒体量。 林格音量与网页无关,因此将手机置于“静音”模式只会影响铃声音量。如果您需要帮助来更改设备的音量设置,请在Apple Stack Exchange上查看How can I lower the media volume on my iPhone when no media are playing?

+0

感谢您的澄清Ringers/Alerts和General Audio之间的区别。我想我会继续播放这些声音,正常情况下,如果用户不想让网页发声,则需要降低其通用音量。我想我们不能要求Javascript在Ringers/Alerts类别而不是通用音频播放声音? –

+1

不幸的是,只有本机iOS应用程序具有该级别的控制权。 JavaScript无法控制音频“分类”。如果你对[你在这里](https://developer.apple.com/ios/human-interface-guidelines/interaction/audio/)和[here](https://)感兴趣,可以阅读关于苹果音频指南的更多信息。 developer.apple.com/reference/audiotoolbox/system_sound_services) –