Как воспроизводить видео YouTube синхронно на нескольких клиентах? - PullRequest
13 голосов
/ 08 декабря 2011

Я хочу понять, как создать веб-приложение, позволяющее нескольким пользователям синхронизировать одно и то же видео YouTube на своих компьютерах. Например, synchtube.com или watch2gether.com

Я ищу простой подход, который может быть реализован с использованием распространенных технологий, таких как PHP, jQuery и Apache. В настоящее время я размышляю по принципу опроса (или длинного опроса кометы, но это требует более сложной настройки сервера, которую я надеюсь избежать), подобно тому, как реализованы Ajax приложения чата - то есть клиенты постоянно проверяют сервер, чтобы увидеть какое видео воспроизводится. Тем не менее, я подозреваю, что здесь будут проблемы с задержкой, поэтому видео не будет полностью синхронизировано. Я пока не могу придумать лучшего подхода.

Сообществу разработчиков, любая помощь по методологии или фрагментам кода очень ценится!

Ответы [ 3 ]

4 голосов
/ 08 декабря 2011

Вот пример синхронизации видео с использованием WebSockets и node.js: http://softwareas.com/video-sync-with-websocket-and-node

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

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

Если вы хотите использовать видео YouTube, а HTML5 не всегдабудет доступен, тогда вам нужно будет использовать Player API .Я не вижу похожего события timeupdated (доступно в видео HTML5), поэтому вам может потребоваться периодически проверять время видео (см. раздел API статуса игрока . Вы можете зарегистрироваться для событий изменения состояния, чтобы вы зналикогда пользователь делает паузу, останавливает видео и т. д. Комментарий

@ rob-w дает хорошее представление об использовании API YouTube.

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

1 голос
/ 08 декабря 2011

У вас есть несколько способов сделать это:

  • Идеальным решением является использование протокола совместной работы в реальном времени и сервера (таких как XMPP и OpenFire ) Настройка и разработка пользовательского модуля, который позволит вам передавать пользовательские разделы туда-сюда.К сожалению, он не только не соответствует вашим требованиям к задействованным технологиям, но и довольно сложен в реализации, но результат впечатляющий.

  • Далее, если кросс-браузерная совместимость непроблема, вы можете использовать API WebSocket в HTML 5. Посмотрите пример этого парня о том, как построить чат с поддержкой HTML 5 WebSocket.

  • Наконецу вас остался AJAX-опрос, либо обычный метод, либо длинный опрос, при котором вы блокируете выполнение сценария на стороне сервера до тех пор, пока у вас не будут доступны некоторые данные.См. эту ссылку для дальнейшего использования.

0 голосов
/ 31 марта 2016

Для меня идеальным решением является использование Vynch.С помощью этой технологии вы можете встроить в свой веб-сайт комнату с видео, которое вы можете смотреть синхронизированно.Вы можете создать плейлист и поделиться с друзьями и пользователем!также есть чат для обмена впечатлениями ..

...