2012-03-04 109 views
1

積極傾聽並將jqueryui-sliderjplayer voulme合併爲一個值變量?還顯示在另一個div的音量值? 是否有辦法獲取jqueryui slider val的值並將其應用於jplayer vololume的值? HTML標記:jqueryui滑塊+ jplayer音量值

<ul class="toolbar ui-widget-header ui-corner-all"> 
       <li><button class="jp-play" href="#">Play</button></li> 
       <li><button class="jp-pause" href="#">Pause</button></li> 
       <li><button class="jp-stop" href="#">Stop</button></li> 
       <li><button class="jp-mute" href="#">Mute</button></li> 
       <li><button class="jp-unmute" href="#">Unmute</button></li> 
       <li><div class="jp-volume-bar"></div></li> 
      </ul> 
      <ul> 


      </ul> 

的jQuery:

my_jPlayer.jPlayer({ 
     ready: function() { 
      $("#jp_container .track-default").click(); 
     }, 
     timeupdate: function(event) { 
      my_extraPlayInfo.text(parseInt(event.jPlayer.status.currentPercentAbsolute, 10) + "%"); 
     }, 
     play: function(event) { 
      my_playState.text(opt_text_playing); 
     }, 
     pause: function(event) { 
      my_playState.text(opt_text_selected); 
     }, 
     ended: function(event) { 
      my_playState.text(opt_text_selected); 
     }, 
     swfPath: "js", 
     cssSelectorAncestor: "#jp_container", 
     supplied: "mp3", 
     wmode: "window", 
     volumeBarValue: volVal 
    }); 
$(".jp-volume-bar").slider({ 
      value: 100, 
      orientation: "horizontal", 
      range: "min", 
      animate: true 
    }); 
    var volVal = $(".jp-volume-bar").slider("value"); 

回答

0

這應該使用事件觸發可以實現的。如果您對這個概念不熟悉,請查看jQuery事件綁定和事件觸發。

一旦你知道如何做事件,看看jQuery滑塊的滑動事件。 http://docs.jquery.com/UI/Slider#event-slide

你只需要更新jPlayer的音量和更換所需的音量

+0

這將給我一個整數,我需要一個浮點數最小0到最大1 ...有沒有辦法獲得一個浮點值? – 2012-03-04 10:06:44

+1

http://stackoverflow.com/questions/4057489/javascript-convert-int-to-float – ShaggyInjun 2012-03-05 03:48:34

4

這真的是很容易與最新jplayer的DIV中的值(版本:2.1.0):

$('#sliderVolume').slider({ 
    value : 50, 
    max: 100, 
    range: 'min', 
    animate: true, 
    orientation: "vertical", 

    slide: function(event, ui) { 
     var volume = ui.value/100; 
     $("#jquery_jplayer").jPlayer("volume", volume); 
    } 
});