是否有可能在IOS上控制HTML5音量?

时间:2014-12-04 14:22:21

标签: javascript html5 mobile-safari html5-audio buzz.js

我使用html5音频库Buzz将声音添加到浏览器游戏中。有一个切换按钮可以静音和取消静音,适用于台式机和Android设备。不幸的是,IOS上的音频标签似乎非常有限,因此我无法在Mobile Safari中静音(请参阅https://developer.apple.com/library/archive/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/Introduction/Introduction.html):

  

在iOS设备上,音频级别始终在用户的物理控制之下。在JavaScript中无法设置volume属性。读取volume属性始终返回1.

您知道在Mobile Safari中控制html5音频标签量的任何解决方法吗?

3 个答案:

答案 0 :(得分:1)

我一直认为动态音量控制,当然我们都知道,交叉渐变是不可能的。苹果已经断言它是如此。除了....显然Kodo Games的人(特别是Nicola Hibbert?)已经把它拉下来并让代码可供任何人使用。我刚刚在iOS 8上查看了它。淡入淡出和交叉淡入淡出似乎工作!

检查出来(新网站有效):Getting Started with Web Audio API

答案 1 :(得分:0)

要向iOS添加音量更改支持,而不是将整个应用从html5音频重写为网络音频,您可以通过createMediaElementSource组合这些音频解决方案。

请在Mozilla网站https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/createMediaElementSource

上查看更多详细信息。

答案 2 :(得分:-1)

我通过简单地停止所有声音并将变量isMuted设置为true或false来解决这个问题,所以我可以在任何地方检查声音:

// set the variable
var isMuted = false;

// toggle audio
function toggleMute() {

    var toggleAudioBtn = $(".toggleAudio");

        if (isMuted == false) {
            sounds.stop();
            isMuted = true;
            toggleAudioBtn.css("background-image", "url('images/ui/btn_audio_mute.png')");
        } else {
            isMuted = false;
            toggleAudioBtn.css("background-image", "url('images/ui/btn_audio.png')");
        }

};

// for every sound check if sound is muted
if(isMuted == false) {
    sound.play();
}