自动播放音频播放列表SoundManager2 bar-ui

时间:2015-02-10 22:03:27

标签: javascript jquery soundmanager2

**已编辑**

请参阅下面的Jon Black的答案作为正确的解决方案...

我正在尝试在网站上为客户端使用SoundManager2 HTML5音频播放器,但是客户端坚持.mp3播放列表自动播放从音轨1开始并循环播放剩下的轨道。

原始脚本(网站上的soundmanager2.js)有一个autoPlay:false选项,但将此更改为true不会执行任何操作。

这是我创建的演示网站的链接,该网站使用SoundManager2的bar-ui(客户端想要使用的样式)和在后台自动播放.mp3曲目的脚本:{{3} }

正如您所看到的(并听到),背景音频会自动播放,但不会像预期的那样通过条形音色播放。如果单击“播放”或单击轨道菜单中的播放列表项,则新单击的音频只会播放背景音频,这是不希望的。我需要播放列表音频自动播放,能够通过条形音箱播放,暂停和选择不同的音轨。

website with working demo

我希望有人可以告诉我如何创建一个功能或提供一个脚本,允许播放列表在页面加载时自动播放音频播放器UI。

我已经做了很多搜索,并尝试过编写和拼凑脚本,但似乎无法让这个工作!所以,我转向SO上的GENIUSES。

提前感谢您的帮助!

5 个答案:

答案 0 :(得分:2)

上述解决方案对我不起作用。 它会更改按钮状态,但文件不会播放。我在chrome console中得到了这个带下划线的错误

sound0: play(): Loading - attempting to play...
bar-ui.js:125 Uncaught TypeError: Cannot read property 'on' of undefined

此处显示autoPlay为真。

Object {url: "http://freshly-ground.com/data/audio/sm2/SonReal%20-%20LA%20%28Prod%20Chin%20Injetti%29.mp3", volume: 100, autoLoad: false, autoPlay: true, from: null…}

答案 1 :(得分:1)

我找到了一种快速简便的方法来解决你的困境。您只需在init() line 1378bar-ui.js之后或之后添加此简单代码。

    soundObject = makeSound(playlistController.getURL());
    soundObject.togglePause();

init()设置播放器后,您只需要在播放列表中排队第一个声音(使用makeSound(playlistController.getURL()),然后播放(使用togglePause())。

答案 2 :(得分:0)

要清楚Jon的解决方案: 将他提到的两行添加到bar-ui.js并插入soundManager.setup

onready: function() {
makeSound(playlistController.getURL());
togglePause();
}

希望这有帮助。

答案 3 :(得分:0)

当我尝试使用Jon Black的解决方案时,我遇到了与Oj Obasi相同的错误,因此在init()调用之后立即添加这两行而不是在导出声明之后添加它们并且它运行良好。 这是我做的编辑:



init(); // the init call

    exports = {
      // Per-instance events: window.sm2BarPlayers[0].on = { ... } etc. See global players.on example above for reference.
      on: null,
      actions: actions,
      dom: dom,
      playlistController: playlistController
    };
    soundObject = makeSound(playlistController.getURL()); // these two lines make it autoplays the playlist from beginning
    soundObject.togglePause(); // these two lines make it autoplays the playlist from beginning
    return exports;




答案 4 :(得分:0)

要使用SM2播放器自动播放单个文件(不是播放列表),请在页面加载时包含以下内容:

sm2BarPlayers[0].actions.play();