在JS / HTML5播放器中更改播放器音量值,但音量保持不变

时间:2017-02-09 10:17:48

标签: javascript html5

我想降低HTML播放器的默认音量。

我可以在这里更改值:

`setAttributes(volumeSlider, { "type": "range", "min": "0", "max": "1",      "step": "any", "value": "1", "orient": "vertical", "id": "volumeSlider" });`

http://codepen.io/Teeke/pen/MJPoOr

value: 1更改为0.1会使音量滑块降低至10%,但播放音轨音量保持不变。

我也尝试过静音和修改这两个函数的值,但没有效果:

function volumizer() {
    if (audioTrack.volume == 0) { setText(muteButton,"volume"); }
    else { setText(muteButton,"volumehigh"); }
}

function muter() {
    if (audioTrack.volume == 0) {
        audioTrack.volume = restoreValue;
        volumeSlider.value = restoreValue;
} else {
    audioTrack.volume = 0;
    restoreValue = volumeSlider.value;
    volumeSlider.value = 0;
    }
}

我需要更改哪个值才能以编程方式降低曲目音量?

1 个答案:

答案 0 :(得分:2)

我在这里缺少什么...你的例子很好。

当我更改滑块时,轨道的音量在视觉上,在控制台中以及在此机器上的音频上都会发生变化。

如果它不适合您,则可能是浏览器问题。我使用的是Chrome版本56.0.2924.87。

要在控制台中查看值,请按左下方的控制台按钮并使用console.log功能:

volumeSlider.addEventListener("input", function(){ 
  console.log(['beforeVolChng', volumeSlider.value, audioTrack.volume]);
  audioTrack.volume = volumeSlider.value; 
  console.log(['afterVolChng', volumeSlider.value, audioTrack.volume]);
}, false);

Console.log可以采取任何措施:基本类型(int,float,char),对象和数组等。

因此,如果您的问题是:您希望在开始播放时应用滑块上的播放音量。让我看看。

这将是一个很好的解决方案:

audioTrack.addEventListener('playing', 
   function(){ 
      playhead.max = audioTrack.duration; 
      audioTrack.volume = volumeSlider.value; 
   }, false);