1

我对 iPad 和 Android Tables 等设备有疑问,您无法更改视频标签的音量,因为此设备不支持 Volume API。你知道我如何检测这是否不支持吗?

4

1 回答 1

2

我能想到的最好的是:

function volumeChangeSupported () {
    var ua = navigator.userAgent.toLowerCase();
    // got information from jplayer:
    var noVolume = /ipad|iphone|ipod|android|blackberry|windows ce|windows phone|webos|playbook/.exec(ua);

    if (noVolume) {
        if (noVolume[0] === 'android' && /gecko/.test(ua)) {
            // Firefox on android DOES support changing the volume:
            return true;
        }
        else {
            return false;
        }
    }
    return true;
}

这并不真正“检测”对更改音量的支持。我从 jPlayer 获得了这些信息,部分来自我自己在旧的 Android 3 平板电脑上测试 Firefox 19 的经验。谁知道 Firefox 在 Android 手机或不同 Android 版本上的行为是否不同。

但在此之前,我试图检测这样的音量变化支持:

function volumeChangeSupported () {
    var audio = new Audio();
    audio.volume = 0.5;
    return audio.volume === 0.5;
}

这对 iPhone Safari 和 Android Firefox 产生了正确的结果,但不适用于其他 Android 浏览器(“Android 浏览器”和“Dolphin”,它们不能改变音量,但必须audio.volume === 0.5是真的)。

于 2013-03-20T23:32:58.697 回答