**已编辑**
请参阅下面的Jon Black的答案作为正确的解决方案...
我正在尝试在网站上为客户端使用SoundManager2 HTML5音频播放器,但是客户端坚持.mp3播放列表自动播放从音轨1开始并循环播放剩下的轨道。
原始脚本(网站上的soundmanager2.js)有一个autoPlay:false选项,但将此更改为true不会执行任何操作。
这是我创建的演示网站的链接,该网站使用SoundManager2的bar-ui(客户端想要使用的样式)和在后台自动播放.mp3曲目的脚本:{{3} }
正如您所看到的(并听到),背景音频会自动播放,但不会像预期的那样通过条形音色播放。如果单击“播放”或单击轨道菜单中的播放列表项,则新单击的音频只会播放背景音频,这是不希望的。我需要播放列表音频自动播放,能够通过条形音箱播放,暂停和选择不同的音轨。
我希望有人可以告诉我如何创建一个功能或提供一个脚本,允许播放列表在页面加载时自动播放音频播放器UI。
我已经做了很多搜索,并尝试过编写和拼凑脚本,但似乎无法让这个工作!所以,我转向SO上的GENIUSES。
提前感谢您的帮助!
答案 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 1378
上bar-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)
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();