【问题标题】:Stopping a dynamically created Soundcloud oEmbed player when closing a modal关闭模式时停止动态创建的 Soundcloud oEmbed 播放器
【发布时间】:2013-11-22 21:03:39
【问题描述】:

我正在开发一个 web 应用程序,它允许人们通过复制和粘贴 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
    });

【问题讨论】:

    标签: javascript jquery soundcloud oembed


    【解决方案1】:

    似乎没有办法从 SC JS SDK 做到这一点。

    你能做的最好的就是删除 SC iframe:

    $('#audio_1_body').html('')
    

    【讨论】:

      猜你喜欢
      • 2015-07-29
      • 1970-01-01
      • 2016-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多