Подтвердить что ты не робот

Как синхронизировать ролики YouTube на нескольких клиентах?

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

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

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

4b9b3361

Ответ 1

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

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

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

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

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

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

Ответ 2

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

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

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

  • Наконец, вы остаетесь с опросом AJAX, обычным методом или длинным опросом, в котором вы блокируете выполнение на стороне сервера script до тех пор, пока у вас не будет доступных данных. Подробнее см. эту ссылку.

Ответ 3

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