jQuery和Audio.js:动态添加到播放列表中的歌曲,无法播放或识别



我一直在使用audio.js制作动态播放列表。当用户单击"未排序列表"中的链接时,该链接将添加到为音频播放器播放列表提供服务的"排序列表"(<ol>(中。

我让jQuery工作,将新的列表项从Un-Ordered列表添加到Ordered列表。然而,播放器在点击时不会播放新添加的歌曲,也不会将其作为下一首曲目。

当加载网站时,音频播放器只播放播放列表中最初的歌曲,但无法识别加载后我添加的歌曲。有什么帮助吗?

以下是audio.js示例播放列表的链接:http://kolber.github.io/audiojs/demos/test6.html

这里有一个链接到我添加了jQuery歌曲的版本:http://tinyurl.com/kg9clpb

Audio.js设置播放器的演示源代码:

<script>
 $(function() { 
 // Setup the player to autoplay the next track
    var a = audiojs.createAll({
      trackEnded: function() {
        var next = $('ol li.playing').next();
        if (!next.length) next = $('ol li').first();
        next.addClass('playing').siblings().removeClass('playing');
        audio.load($('a', next).attr('data-src'));
        audio.play();
      }
    });
    // Load in the first track
    var audio = a[0];
        first = $('ol a').attr('data-src');
    $('ol li').first().addClass('playing');
    audio.load(first);
    // Load in a track on click
    $('ol li').click(function(e) {
      e.preventDefault();
      $(this).addClass('playing').siblings().removeClass('playing');
      audio.load($('a', this).attr('data-src'));
      audio.play();
    });
    // Keyboard shortcuts
    $(document).keydown(function(e) {
      var unicode = e.charCode ? e.charCode : e.keyCode;
         // right arrow
      if (unicode == 39) {
        var next = $('li.playing').next();
        if (!next.length) next = $('ol li').first();
        next.click();
        // back arrow
      } else if (unicode == 37) {
        var prev = $('li.playing').prev();
        if (!prev.length) prev = $('ol li').last();
        prev.click();
        // spacebar
      } else if (unicode == 32) {
        audio.playPause();
      }
    })
  });
 </script>

Aud oplayer和Both列表的HTML:

  <audio ></audio>
  <h2>Playlist</h2>
  <ol id="userPlaylist">
    <li><a href="#" data-src="http://kolber.github.io/audiojs/demos/mp3/02-juicy-r.mp3">dead wrong intro</a></li>
    <li><a href="#" data-src="http://kolber.github.io/audiojs/demos/mp3/02-juicy-r.mp3">juicy-r</a></li>
    <li><a href="#" data-src="http://kolber.github.io/audiojs/demos/mp3/03-its-all-about-the-crystalizabeths.mp3">it's all about the crystalizabeths</a></li>
    <li><a href="#" data-src="http://kolber.github.io/audiojs/demos/mp3/04-islands-is-the-limit.mp3">islands is the limit</a></li>
    <li><a href="#" data-src="http://kolber.github.io/audiojs/demos/mp3/05-one-more-chance-for-a-heart-to-skip-a-beat.mp3">one more chance for a heart to skip a beat</a></li>
    <li><a href="#" data-src="http://kolber.github.io/audiojs/demos/mp3/06-suicidal-fantasy.mp3">suicidal fantasy</a></li>
    <li><a href="#" data-src="http://kolber.github.io/audiojs/demos/mp3/07-everyday-shelter.mp3">everyday shelter</a></li>
    <li><a href="#" data-src="http://kolber.github.io/audiojs/demos/mp3/08-basic-hypnosis.mp3">basic hypnosis</a></li>
    <li><a href="#" data-src="http://kolber.github.io/audiojs/demos/mp3/09-infinite-victory.mp3">infinite victory</a></li>
    <li><a href="#" data-src="http://kolber.github.io/audiojs/demos/mp3/10-the-curious-incident-of-big-poppa-in-the-nighttime.mp3">the curious incident of big poppa in the nighttime</a></li>
    <li><a href="#" data-src="http://kolber.github.io/audiojs/demos/mp3/11-mo-stars-mo-problems.mp3">mo stars mo problems</a></li>
  </ol>
  <h3>Songs Not it Playlist - Click to add to Playlist</h3>
  <ul id="mainSite">
  <li><a href="#" data-src="http://www.jussbuss.tv/testing/sapi/mp3/john-fenton_dive-table.mp3">john-fenton_dive-table</a></li>
  </ul>

我的代码添加歌曲从另一个列表点击:

 <script>
 $("ul#mainSite li").on("click", "a", function(e){
     e.preventDefault();

      var addLink = $(this).attr('data-src');

      $("ol#userPlaylist").append('<li> <a href="#" data-src="'+addLink+'">NEW 
          SONG</li>');
     });
 </script>

如果我理解正确,你的问题是玩家在你的列表中没有关联。由于玩家是SWF玩家,你必须控制玩家(给它一个开始游戏的信息(。

神奇之处在于:

audio.load($('a', next).attr('data-src'));
audio.play();

完整代码:

http://kolber.github.io/audiojs/audiojs/audio.js

为了进一步帮助您,请阅读并理解演示的完整代码(下载所有内容并使用代码(

http://kolber.github.io/audiojs/demos/test6.html

你很快就会找到答案。

相关内容

  • 没有找到相关文章

最新更新