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

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

【问题讨论】:

    标签: javascript jquery html jquery-ui html5-audio


    【解决方案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来更改轨道的位置吗,如果可以,我也要更改什么?
    猜你喜欢
    • 2014-10-08
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多