2012-03-06 36 views

回答

15

volume的屬性是不透明度等,這是不言而喻零和一,一個之間爲100%。

你的代碼是如此接近,你只需要通過100劃分value設置<audio>元件的體積時:

$("#slider").slider({ 
    value : 75, 
    step : 1, 
    range : 'min', 
    min : 0, 
    max : 100, 
    change : function(){ 
     var value = $("#slider").slider("value"); 
     document.getElementById("audio-player").volume = (value/100); 
    } 
}); 

通知我也把change事件處理程序slider widget的初始化內。

當我沿着粘貼上面的代碼到控制檯,同時在您的網頁,和音量滑塊發揮預期。

此外,您還可以綁定到slide事件和體積會隨着用戶改變滑動slider小部件,而不是在他們完成移動手柄:

$("#slider").slider({ 
    value : 75, 
    step : 1, 
    range : 'min', 
    min : 0, 
    max : 100, 
    slide : function(){ 
     var value = $("#slider").slider("value"); 
     document.getElementById("audio-player").volume = (value/100); 
    } 
}); 
+0

作品,出色。 但是,如果你點擊隨機欄上,顯然,滑塊移動和音量調整,但如果你去了幾次,體積會往下走,但如果你再上去一次,它再次下降,然後備份。 滑塊雖然工作正常。 編輯:通過添加幻燈片和更改爲初始化來解決此問題。 @Jasper – futureslay 2012-03-06 19:06:00

+0

我的偉大工程!用於滑塊的自定義jQuery UI主題,就像我有一個自定義音量滑塊,用於在後臺播放MP3。 – Omegacron 2018-01-10 21:32:38

4

這裏有一個quick jsFiddle example(注:音頻從頁面加載開始)。

的jQuery:

$('#audioSlider').slider({ 
    orientation: "vertical", 
    value: audio1.volume, 
    min: 0, 
    max: 1, 
    range: 'min', 
    animate: true, 
    step: .1, 
    slide: function(e, ui) { 
     audio1.volume = ui.value; 
    } 
});​ 

HTML:

<div id="audioSlider"></div> 

<audio id="audio1" autoplay> 
    <source src="http://www.w3schools.com/html5/song.ogg" type="audio/ogg" /> 
    <source src="http://www.w3schools.com/html5/song.mp3" type="audio/mpeg" /> 
    Your browser does not support the audio element. 
</audio>​ 
0

在jQuery中,你可以通過簡單地使用

$("audio")[0] 

得到DOM對象,這樣的例子是:
HTML

<div class="audio-clip"> 
    <h4>Clip 1</h4> 
    <input type="button" class="play-button">Play</button> 
    <input type="range" min="0" max="1" step="0.1"/> 
    <audio src="http://www.w3schools.com/html5/song.mp3"></audio> 
</div> 
<div class="audio-clip"> 
    <h4>Clip 2</h4> 
    <input type="button" class="play-button">Play</button> 
    <input type="range" min="0" max="1" step="0.1"/> 
    <audio src="http://www.w3schools.com/html5/song.mp3"></audio> 
</div> 

jQuery的

$(document).ready(function() { 
    $(".play-button").click(function(){ 
     $(this).parent("div").find("audio").trigger('play');  
    }); 

    $(".audio-clip input[type='range']").on("input", function(){ 
     $(this).parent("div").find("audio")[0].volume = this.value; 
    }); 
});