Остановка динамически созданного проигрывателя Soundcloud oEmbed при закрытии модального окна

Я работаю над веб-приложением, которое позволяет людям делиться ссылками из Soundcloud, копируя и вставляя URL-адрес. Затем веб-приложение генерирует текущий список людей, позволяя пользователям открывать модальное окно, которое загружает проигрыватель Soundcloud (через SC.oEmbed). URL-адрес получен из элемента, который открывает модальное окно. Итак, SC.oEmbed открывает URL-адрес, найденный в атрибуте href.

У меня все отлично работает, за исключением того, что когда модальное окно закрыто, музыка продолжает играть.

Похоже, что с этим проигрывателем не связана функция stop() или pause(), как с проигрывателем Widget. Единственное решение, которое я нашел, — это закрыть SC.oEmbed, чтобы открыть другую случайную ссылку на звуковое облако, но с отключенным 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
    });

person BandfuzzAlex    schedule 22.11.2013    source источник


Ответы (1)


Не похоже, что есть способ сделать это из SC JS SDK.

Лучшее, что вы можете сделать, это удалить SC iframe:

$('#audio_1_body').html('')
person Raman Shalupau    schedule 07.02.2014