Comment lire des vidéos YouTube en synchronisation sur plusieurs clients?
Je suis à la recherche pour comprendre comment construire une application web qui permet à plusieurs utilisateurs de visualiser le même YouTube vidéo en synchronisation sur leurs ordinateurs. Par exemple, synchtube.com ou watch2gether.com
Je suis à la recherche d'une approche simple qui peut être mis en œuvre en utilisant les technologies courantes telles que PHP
, jQuery
et Apache
. Je suis en train de penser le long des lignes de bureaux de vote (ou d'une comète à longue interrogation mais qui nécessite le plus complexe de l'installation du serveur qui, je l'espère, à éviter), similaire à la façon dont Ajax
applications de chat sont mis en œuvre - c'est-clients de vérifier en permanence avec le serveur pour voir la vidéo en cours de lecture. Cependant, je pense qu'il y aura des problèmes de latence voici donc les vidéos ne sont pas complètement synchronisés. Je ne peux pas penser à une meilleure approche encore.
Des confrères de la communauté des développeurs, toute aide sur la méthodologie ou des extraits de code sont très appréciés!
Utiliser un serveur pour synchroniser les clients. Ensuite, utilisez le YouTube JavaScript player API pour lire une vidéo. Voir cette réponse pour un simple, facile à comprendre la méthode pour lire une vidéo. Pour les plus complexes des appels, comme le joueur de l'etat et des événements, voir cette réponse.
Même si tous les utilisateurs de démarrer la vidéo exactement au même moment, ce qui se passe si certains ont une connexion plus lente qui peut suivre le flux vidéo seulement aussi longtemps que les autres applications ne sont pas de l'utilisation de certains de la bande passante? Voulez-vous faire de tous les clients de pause de sorte que personne ne se trouve derrière?
OriginalL'auteur Anthony | 2011-12-07
Vous devez vous connecter pour publier un commentaire.
Voici un exemple de tenue des vidéos synchronisées utiliser les WebSockets et node.js:
http://softwareas.com/video-sync-with-websocket-and-node
Je sais que vous ne voulez pas utiliser cette technologie, il est juste un bon point de départ pour montrer ce que vous pouvez faire et comment.
Puisque vous voulez utiliser PHP et de garder les choses simples, alors votre meilleure solution consiste à externaliser la couche de communications en temps réel (utilisé pour garder les vidéos de l'utilisateur synchronisation) pour un service hébergé comme Pousseur, avec qui je travaille pour. Cela signifie que vous n'avez pas besoin de maintenir la persistance de la connexion et vous pouvez utiliser le Poussoir pour fournir en temps réel des événements sur la vidéo d'états entre les usagers/clients.
Si vous souhaitez utiliser des vidéos YouTube, et le HTML5 n'est pas toujours disponible, alors vous aurez besoin d'utiliser la Player API. Je ne peux pas voir un semblable
timeupdated
événement (disponible en vidéo HTML5) de sorte que vous pourriez avoir besoin de vérifier périodiquement la vidéo (voir statut de joueur de l'API section. Vous pouvez vous inscrire pour le changement d'état des événements afin de savoir quand un utilisateur arrête, arrête vidéo etc.@rob-w le commentaire fournit quelques bonnes aperçu de l'aide de l'API YouTube.
Remarque: Il pourrait faire pour un très intéressant billet de blog, donc si vous êtes intéressés faites le moi savoir et je vais voir ce que je peux faire.
OriginalL'auteur leggetter
Vous avez un couple de façons dont vous pouvez accomplir ceci:
La solution idéale est d'utiliser un vrai travail de collaboration protocole et serveur (comme XMPP et OpenFire) et de développer un module personnalisé qui vous permettra de passer personnalisé strophes d'avant en arrière. Malheureusement, non seulement il ne répond pas à vos exigences au sujet de la technologie en cause, mais c'est aussi assez compliqué à mettre en œuvre, mais le résultat est spectaculaire.
Ensuite, si la compatibilité inter-navigateur n'est pas un problème, vous pouvez utiliser l'API WebSocket en HTML 5. Découvrez ce gars exemple sur la façon de construire un HTML 5 WebSocket-activez le chat.
Enfin, vous êtes de gauche avec l'AJAX d'interrogation, soit la méthode habituelle ou le long du scrutin, dans lequel vous bloquez le côté serveur de l'exécution du script jusqu'à ce que vous avez quelques données disponibles. Voir ce lien pour référence ultérieure.
OriginalL'auteur AlexB
Pour moi, la solution idéale est d'utiliser Vynch. Avec cette technologie, vous pouvez intégré dans votre propre site web, une chambre avec de la vidéo que vous pouvez regarder synchronisé. Vous pouvez créer une liste de lecture et de partager avec des amis et de l'utilisateur! il y a aussi un chat pour échanger vos impressions..
OriginalL'auteur florine