weixin_33714884 2017-12-28 08:00 采纳率: 0%
浏览 314

使用Ajax在HTML中加载音频

I have a list of music I want When I click image of music opened media player with ajax, I Use this code in HTML:

 <div class="container ">
     <div class="row center">
        @foreach($singles as $single)
           <div class="col-md-2 folio-thumb">
             <a href="#" data-value="http://media.w3.org/2010/07/bunny/04-
               Death_Becomes_Fur.oga"><img class="img-responsive"
                src={{asset($single->Single_Image)}} /></a>
                     <h6 style="color:white" id="music">
                      {{$single>Single_Name}}<a href="/"></a></h6>
           </div>
        @endforeach
      </div>
   </div>
   <audio id="audio" controls="controls" style="margin-left:150px;">
      <source id="audioSource" src="">
       Your browser does not support the audio format.
   </audio>

And Ajax Code:

$('.folio-thumb').click(function (e) {
    e.preventDefault();
     var elm = e.target;
      var audio = document.getElementById('audio');
        var source = document.getElementById('audioSource');
         source.src = elm.getAttribute('data-value');
          audio.load(); 
         audio.play(); 
   });

But I Give this Error in console:

GET http://127.0.0.1:8000/null net::ERR_ABORTED home:288 Uncaught (in promise) DOMException: The play() request was interrupted by a new load request.

  • 写回答

2条回答 默认 最新

  • weixin_33716557 2017-12-28 08:22
    关注

    You are using selector .folio-thumb even that class in for the wrapping <div><div class="col-md-2 folio-thumb">. Which results var source = document.getElementById('audioSource'); returning null. (The div does not have any data attributes).

    You should add selector to the <a> element and use that in the JavaScript.

    Example; <a class="play-button" href="#" data-value="http://media.w3.org/2010/07/bunny/04-Death_Becomes_Fur.oga">...</a>

    $('.play-button').click(function (e) {
        e.preventDefault();
         var elm = e.target;
          var audio = document.getElementById('audio');
            var source = document.getElementById('audioSource');
             source.src = elm.getAttribute('data-value');
              audio.load(); 
             audio.play(); 
       });
    

    Working example at https://jsbin.com/ceqotimuru/edit?html,js,output

    Best regards, Riku

    评论

报告相同问题?

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么