2012-09-06 92 views
1

我有一个问题 像iPad和Android的一些设备你不能改变视频标签音量因为这个设备上不支持音量API。哟一个想法如何我可以检测,如果这不是支持?HTML5视频标签音量支持

回答

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的体验。谁知道Android手机上的Firefox或不同的Android版本的行为是否有所不同。

但是在这之前我想检测体积变化支持这样的:

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

这得到正确的结果为iPhone的Safari和Android的Firefox,但不支持其他的Android浏览器(以下简称“Android浏览器”和“海豚“,它不能改变音量,但有audio.volume === 0.5为真)。