我正在开发一个网络应用程序,它允许人们通过复制和粘贴 URL 来共享来自 Soundcloud 的链接。然后 webapp 生成一个运行人员列表,允许用户打开一个加载 Soundcloud 播放器的模式(通过 SC.oEmbed)。URL 派生自打开模式的元素。所以 SC.oEmbed 打开了在 href 属性中找到的 URL。
我的一切工作都很好,除了当模式关闭时音乐继续播放。
似乎没有与此播放器相关的 stop() 或 pause() 函数,就像 Widget 播放器那样。我发现的唯一解决方案是在关闭时让 SC.oEmbed 打开另一个随机 soundcloud 链接,但关闭 auto_play。这行得通,但似乎真的很不雅,而且浪费资源。一定有更好的方法不是吗?哦,我也在使用 Twitter Bootstrap。
这是我的 jQuery 代码:
$(document).ready( function() {
SC.initialize({
client_id: "xxxxxxxxxxxxxxxxxx",
});
$("a[data-target='#myModal']").click(function(event) {
event.preventDefault(); /* makes sure <a> link doesn't actually open new window */
var url = this.href; // gets Soundcloud URL from href in <a> element
SC.oEmbed(url, { auto_play: false }, document.getElementById("audio_1_body"));
});
/* this part below is what I want to improve -- loading up a random track, just to stop playing of track that was loaded in the modal */
$("#myModal").on("hidden.bs.modal", function(){
url = "https://soundcloud.com/the-deep-dark-woods/sugar-mama-1";
SC.oEmbed(url, { auto_play: false }, document.getElementById("audio_1_body")); //this last part is what I want to improve
});