自动播放音频播放列表 SoundManager2 bar-ui
Posted
技术标签:
【中文标题】自动播放音频播放列表 SoundManager2 bar-ui【英文标题】:Autoplay audio playlist SoundManager2 bar-ui 【发布时间】:2015-02-10 22:03:26 【问题描述】:** 已编辑 **
请参阅下面 Jon Black 的答案作为正确的解决方案...
我正在尝试在网站上为客户端使用 SoundManager2 html5 音频播放器,但是客户端坚持 .mp3 播放列表 自动播放 从轨道 1 开始并循环播放其余部分轨道。
原始脚本(网站上的 soundmanager2.js)有一个 autoPlay: false 选项,但将其更改为 true 没有任何效果。
这是我创建的演示网站的链接,该网站使用 SoundManager2 的 bar-ui(这是客户想要使用的样式)和在后台自动播放 .mp3 曲目的脚本:website with working demo
如您所见(和所听到),背景音频自动播放得很好,但不像预期的那样通过条形音箱播放。如果单击“播放”或单击轨道菜单中的播放列表项,则新单击的音频只会在背景音频上播放,这是不需要的。我需要播放列表 audi 自动播放,并能够通过条形音箱本身播放、暂停和选择不同的曲目。
Here is the link to original SoundManager2 project website for further info。
我希望有人能告诉我如何创建一个函数或提供一个脚本,以允许播放列表在页面加载时通过音频播放器 UI 自动播放。
我进行了大量搜索,并尝试编写和拼凑脚本,但似乎无法使其正常工作!所以,我转向 SO 上的天才。
提前感谢您的帮助!
【问题讨论】:
尝试在 bar-ui.js 的第 794 行添加 'autoPlay: true,'。 @PatrickGunderson - 抱歉,但整个代码都是问题所在......我似乎无法让 autoPlay:true 正常播放和工作。我尝试设置文档中提供的功能,并在许多地方添加 autoPlay:true,但无济于事。 @jmiraglia 尝试将 'autoPlay: true,' 添加到 bar-ui.js 的第 794 行,但仍然不行...不过感谢您的建议。我真的很感谢帮助家伙 【参考方案1】:上面的解决方案对我不起作用。 它改变了按钮状态,但文件不播放。我在 chrome 控制台中得到这个带下划线的错误
sound0: play(): Loading - attempting to play...
bar-ui.js:125 Uncaught TypeError: Cannot read property 'on' of undefined
这里显示自动播放是真的。
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…
【讨论】:
那么解决方法是什么??【参考方案2】:我想出了一个快速简便的方法来解决您的困境。您只需要在init()
或line 1378
或bar-ui.js
附近调用之后添加这个简单的代码。
soundObject = makeSound(playlistController.getURL());
soundObject.togglePause();
init()
设置播放器后,您只需将播放列表中的第一个声音(makeSound(playlistController.getURL()
)排队,然后播放(togglePause()
)。
【讨论】:
我不能投票(显然,这个网站对网站来说太新了,但这非常有效,并且已被标记为正确的解决方案!非常感谢您的时间和专业知识 Jon Black 以及所有分享答案的人。 【参考方案3】:要清楚 Jon 的解决方案: 将他提到的两行添加到 bar-ui.js 并插入到您的 soundManager.setup
onready: function()
makeSound(playlistController.getURL());
togglePause();
希望这会有所帮助。
【讨论】:
您好 John V,我不确定您要在哪里添加您提供的代码,但我只按照 Jon Black 的建议进行了操作,并且完美无缺。【参考方案4】:当我尝试 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;
【讨论】:
如果您在帖子中包含一部分代码,使其独立于其他答案,那就太好了 - from Review 完成。希望这会有所帮助。【参考方案5】:要使用 SM2 播放器自动播放单个文件,(不是播放列表)在页面加载时包括以下内容:
sm2BarPlayers[0].actions.play();
【讨论】:
以上是关于自动播放音频播放列表 SoundManager2 bar-ui的主要内容,如果未能解决你的问题,请参考以下文章