如何使用滑块更改 HTML5 音频音量或轨道位置? [复制]

Posted

技术标签:

【中文标题】如何使用滑块更改 HTML5 音频音量或轨道位置? [复制]【英文标题】:How to Change the HTML5-audio Volume or Track Position with a Slider? [duplicate] 【发布时间】:2014-01-12 06:36:03 【问题描述】:

我知道.play().stop() 方法。 但是有没有办法将滑块链接到音量?还是滑块到轨道位置?这可能吗? 感谢您的帮助。谢谢!

【问题讨论】:

【参考方案1】:

jQuery UI 让它变得非常简单:

$(function() 

  var $aud = $("#audio"),
      $pp  = $('#playpause'),
      $vol = $('#volume'),
      $bar = $("#progressbar"),
      AUDIO= $aud[0];
  
  AUDIO.volume = 0.75;
  AUDIO.addEventListener("timeupdate", progress, false);
  
  function getTime(t) 
    var m=~~(t/60), s=~~(t % 60);
    return (m<10?"0"+m:m)+':'+(s<10?"0"+s:s);
  
  
  function progress() 
    $bar.slider('value', ~~(100/AUDIO.duration*AUDIO.currentTime));
    $pp.text(getTime(AUDIO.currentTime));
  

  $vol.slider( 
    value : AUDIO.volume*100,
    slide : function(ev, ui) 
      $vol.css(background:"hsla(180,"+ui.value+"%,50%,1)");
      AUDIO.volume = ui.value/100; 
     
  );
   
  $bar.slider( 
    value : AUDIO.currentTime,
    slide : function(ev, ui) 
      AUDIO.currentTime = AUDIO.duration/100*ui.value;
    
  );
  
  $pp.click(function() 
    return AUDIO[AUDIO.paused?'play':'pause']();
  );
  
);
#player
  position:relative;
  margin:50px auto;
  width:300px;
  text-align:center;
  font-family:Helvetica, Arial;

#playpause
  border:1px solid #eee;
  cursor:pointer;
  padding:12px 0;
  color:#888;
  font-size:12px;
  border-radius:3px;

#playpause:hover
  border-color: #ccc;

#volume, #progressbar
  border:none; 
  height:2px;

#volume
  background:hsla(180,75%,50%,1);

#progressbar
  background:#ccc;

.ui-slider-handle
  border-radius:50%;
  top: -5px !important;
  width: 11px !important;
  height: 11px !important;
  margin-left:-5px !important;
<link rel="stylesheet" href="//code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-3.1.0.js"></script>
<script src="//code.jquery.com/ui/1.12.1/jquery-ui.js"></script>


<div id="player"> 

  <audio id="audio" src="http://upload.wikimedia.org/wikipedia/en/4/45/ACDC_-_Back_In_Black-sample.ogg" autoplay loop>
    <p>Your browser does not support the audio element </p>
  </audio>  

  <div id="volume"></div><br>
  <div id="progressbar"></div><br> 
  <div id="playpause"></div>

</div>

【讨论】:

谢谢。我不知道它这么简单,我以为会有更多内容。 还有一个问题,我可以通过更改audio.volume来更改轨道的位置吗,如果可以,我也要更改什么?

以上是关于如何使用滑块更改 HTML5 音频音量或轨道位置? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

按下音量按钮时更改音量滑块位置

PhoneGap:无法在 ios 中更改 html5 音频对象的音量

更改设备音量

如何更改锁定屏幕/控制中心的轨道位置?

swift中的音频播放器没有获得音量和音高的价值

在 HTML5 中构建音频混音器