带有播放列表的 Javascript 音频

标签 javascript ruby-on-rails html5-audio

Sup,我在 Rails 应用程序中使用 audio.js 插件。我知道,audio.js 的 API 允许制作播放列表,但我没有找到任何相关文档。那么,如何使用 audio.js 或任何其他 js 音频插件实现播放列表? 有一个将 audio.js 与播放列表一起使用的示例,但我不明白它是如何实现的。 http://kolber.github.io/audiojs/demos/test6.html

最佳答案

如果您在顶部的脚本标记内查看页面的源代码,则会出现

<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>

如您所见,它从 url 中的 data-src 加载 URL

<li><a href="#" data-src="http://s3.amazonaws.com/audiojs/01-dead-wrong-intro.mp3">dead wrong intro</a></li>

所以做类似的事情

关于带有播放列表的 Javascript 音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16536897/

相关文章:

javascript - 代码与 IE 不兼容?

Javascript:从对象函数内的单击函数调用对象函数

javascript - 音频上下文在 Android 上无法正常工作

javascript - HTML <audio> 元素未进入 Firefox 中的 readyState 4

javascript - 提交后使按钮消失

javascript - 如何播放音频?

javascript - 从子窗口设置父窗口 URL?

javascript - 根据条件从嵌套的对象数组中删除项目

ruby-on-rails - 设计:使用两个可能的加密密码登录

mysql - 从多属性搜索的条件中删除搜索字符串/查询属性。从 where 条件中删除空白参数的空白属性