как играть музыку в фоновом режиме через страницы - PullRequest
3 голосов
/ 21 апреля 2011

Я прочитал этот вопрос, и я понимаю, что это возможно сделать только с фреймами (я действительно не хочу полнофункциональный AJAX): Как воспроизводить фоновый звук на нескольких страницах HTML .?

Мой вопрос заключается в том, есть ли какой-нибудь способ иметь маленький или, может быть, невидимый кадр, который воспроизводит музыку, и какой-то красиво оформленный элемент управления где-то в основном кадре? На самом деле, я бы хотел решить эту проблему с помощью SoundCloud, но если это невозможно, тогда я открыт для какого-то пользовательского плеера, такого как FlowPlayer или SoundManager 2.

То, что я хотел бы сделать, - это создать веб-сайт для небольшой группы (я делаю это добровольно), на котором есть несколько страниц, таких как photos.php, biography.php, music.php, и я хотел бы иметь выбор музыкальных треков на странице music.php, но я бы хотел, чтобы музыка воспроизводилась, даже если посетитель выходит из музыкальной страницы. Например, это должно быть наиболее очевидной задачей, когда кто-то запускает музыку, затем идет в photos.php и просматривает фотографии, пока музыка все еще играет.

Как лучше всего это сделать?

Обновление : Конечно, я не хочу, чтобы музыка запускалась автоматически.

Ответы [ 3 ]

14 голосов
/ 21 апреля 2011

Я настоятельно рекомендую против этого, но если вы действительно хотели, есть несколько вариантов:

  1. рама
  2. AJAX для всего сайта (на самом деле не так уж отличается от фрейма, но более приятный вариант)
  3. Синхронизация AJAX-плеера
  4. Параметр URL + переписать ссылки
  5. Popup

Frame / AJAX Site

Фрейм, вероятно, является «лучшим» случаем (для ваших зрителей он выглядит как один сайт). Полный сайт AJAX - в основном тот же принцип. Однако вы сказали, что вы против этих вариантов (но не почему).

AJAX-проигрыватель синхронизации

Синхронизация AJAX-плеера будет включать в себя сохранение файла cookie для идентификации пользователя, а проигрыватель AJAX вызывает внутренний сервер, в котором хранится текущее время воспроизведения песни для текущего пользователя.

Затем, при загрузке страницы, вы можете посмотреть на этот раз и запустить песню там.

Тем не менее, вы все равно получите небольшие пропуски между страницами (сравнимые с тем, когда вы проигрываете YouTube во встроенном фрейме, а затем в середине песни переходите к «настоящему YouTube», а не к встроенному видео, и это продолжается, за исключением они делают это с передачей параметров URL).

Параметр URL + переписать ссылки

Другим способом достижения опции «синхронизации» было бы иметь параметры URL, которые определяют текущий момент песни. Затем на каждом «тике» (скажем, секунде / полсекунде) вы можете использовать JavaScript, чтобы переписать все ссылки на странице, чтобы включить обновленный параметр URL. Однако это будет означать, что если кто-то откроет ваш сайт в новой вкладке / окне / без нажатия на ссылку на вашей странице, проигрыватель будет перезапущен. Так или иначе, это произойдет в большинстве из этих вариантов, хотя, возможно, это и не реальный недостаток.

Способ сделать это будет:

  1. Убедитесь, что загрузка вашего плеера проверяет параметр URL GET, чтобы определить время начала воспроизведения.
  2. Имеет функцию "галочки" jQuery / JS, которая выполняется каждые n миллисекунд (вам нужно будет проверить, чтобы найти идеал, я думаю, по крайней мере, 500/1000 мс).
  3. В функции "tick" все ссылки (теги a с href) меняют бит ?paramname=0, который вы добавили к ним, чтобы использовать новое время запуска.

Если вы можете установить куки из javascript (что я не думаю, что вы могли бы, но сейчас могут быть обходные пути), это может быть сделано еще проще, если ваш игрок проверяет куки при загрузке, а затем с помощью функции галочки обновлять куки, а не переписывать все URL.

Popup

Вы можете загрузить плеер во всплывающем окне (конечно, чтобы убедиться, что вы не запускаете новое всплывающее окно при каждой загрузке страницы). Это, вероятно, самый простой вариант для достижения того, чего вы хотите.

Моя рекомендация

Моя рекомендация - не воспроизводить музыку без разрешения - иметь проигрыватель (который может быть в кадре / в неизменном компоненте полного AJAX-сайта / во всплывающем окне), для воспроизведения которого требуется щелчок пользователя. В качестве альтернативы, убедитесь, что музыка достаточно хорошая, чтобы они все равно хотели, чтобы YouTube / их медиаплеер воспроизводили ее в фоновом режиме.

3 голосов
/ 21 апреля 2011

Вернемся назад к 1990-м годам, когда кадры не устарели, а фоновая музыка на веб-страницах еще не была удалена. Если вы действительно должны сделать это , создайте всплывающее окно проигрывателя, как iPlayer BBC для радиопостановок.

2 голосов
/ 16 ноября 2011

Я использовал кроссбраузер и iOS-совместимый плагин jQuery с именем JPlayer, совместимый с html5 и flash, и создал скрипт для сохранения текущего времени воспроизведения в куки при вызове события выгрузки окна.

Получить jQuery, jquery.JPlayer, jquery.Cookie.И зарегистрируйте $ (window) .unload (), чтобы сохранить куки.Когда окно загрузится, проверьте положение воспроизведения cookie и выполните jPlayer («play», сохраненная позиция заголовка)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...