Пользовательский проигрыватель Soundcloud, приостанавливающий проигрыватель

#javascript #jquery #soundcloud

#javascript #jquery #soundcloud

Вопрос:

Как приостановить пользовательский проигрыватель Soundcloud (http://developers.soundcloud.com/docs/custom-player)? У меня есть большая отдельная страница с аудиоплеерами. Когда пользователь переходит в другой раздел страницы, хэш в URL меняется. Как мне приостановить пользовательский проигрыватель Soundcloud при изменении хэша?

Я пробовал $(".sc-player").pause() , но это не всегда работает. Я ищу, чтобы он работал на настольных компьютерах и мобильных устройствах. Кажется, что на рабочем столе используется скрытый SWF-файл, в то время как на мобильном устройстве используется аудиоэлемент.

Любая помощь приветствуется!

Комментарии:

1. у вас есть пример вашей страницы? Если у вас на странице несколько аудиоплееров, $ («.sc-player»).pause() может не сработать, поскольку вы, возможно, нацелены на несколько экземпляров аудиоплеера. Что касается приостановки при изменении хэша, вы пробовали сохранять текущий URL-адрес в переменной JS и отслеживать его на предмет изменений?

2. Я думаю, что могу прослушать событие hashchange, но есть ли какой-либо другой способ остановить / приостановить аудиоплеер? Существует ли метод stopAll()?

3. Не слишком уверен… Если вы хотите приостановить все проигрыватели, но для этого нет доступного метода, вы всегда можете просто перебрать их один за другим: $(«.sc-player»).each(function() { $(this).pause(); });

Ответ №1:

 $('.sc-player.playing a.sc-pause').click();
  

Ответ №2:

Я вроде как обнаружил это случайно (протестировано на странице jsFiddle, и это приостановило проигрыватель).

К коду на этой странице я внес небольшое дополнение: http://jsfiddle.net/aj3Pw/1

В HTML я добавил кнопку «Пауза»:

 <button id="pause">Pause</button>
  

а затем в нижней части JS я добавил прослушиватель событий с помощью «sc.pause()», и это сработало:

 document.getElementById('pause').addEventListener('click', function() { sc.pause();
  

Надеюсь, это поможет!