我正在开发一个webapp,允许人们通过复制和粘贴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
});
答案 0 :(得分:0)
SC JS SDK似乎没有办法实现这一目的。
您可以做的最好是删除SC iframe:
$('#audio_1_body').html('')