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

Autoplay audio playlist SoundManager2 bar-ui

本文关键字:bar ui SoundManager2 播放列表 音频 自动播放      更新时间:2023-09-26

**已编辑**

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

我正试图在客户端的网站上使用SoundManager2 HTML5音频播放器,但客户端坚持要求.mp3播放列表从曲目1开始自动播放,然后循环播放其余曲目。

原始脚本(网站上的soundmanager2.js)有一个autoPlay:false选项,但将其更改为true没有任何作用。

这里有一个链接到我使用SoundManager2的bar ui创建的演示网站(这是客户端想要使用的风格),以及一个在后台自动播放.mp3曲目的脚本:带有工作演示的网站

正如你所看到的(和听到的),背景音频自动播放得很好,但不是像预期的那样通过声音栏。如果单击"播放"或单击曲目菜单中的播放列表项,则新单击的音频只是在背景音频上播放,这是不需要的。我需要播放列表audi来自动播放,能够通过声音栏本身播放、暂停和选择不同的曲目。

以下是SoundManager2项目网站的链接,以获取更多信息。

我希望有人能告诉我如何创建一个函数或提供一个脚本,让播放列表在页面加载时自动通过音频播放器UI播放。

我已经做了大量的搜索,并尝试编写和拼凑脚本,但似乎无法做到这一点!所以,我转向So上的GENIUSES。

提前感谢您的帮助!

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

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

我找到了一种快速简单的方法来解决您的困境。您只需要在bar-ui.jsline 1378上或附近的init()调用之后添加此简单代码。

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

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

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

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

希望这能有所帮助。

当我尝试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;

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

sm2BarPlayers[0].actions.play();