Tamponner entièrement la vidéo dans Chrome
Est-il possible de pleinement de la mémoire tampon vidéo HTML5 en Chrome (et Opera)?
Je l'hôte du film .mp4 et .webm sur amazon S3. En HTML, j'ai utiliser le standard <video>
tag. Le serveur répond avec un statut 206 Partial Content
. Il est idéal, car il permet au navigateur de télécharger une partie de la vidéo, mais j'ai besoin d'être en mesure de rechercher instantanément à n'importe quelle partie du fichier.
J'ai essayé:
.PROGRESS
événement. Lorsque google Chrome s'arrête de mise en mémoire tampon de la première partie, la connexion est tué. Les parties suivantes sont téléchargés dans une nouvelle connexion, de sorte que JavaScript n'est pas en mesure de poursuivre la vérification totale de données téléchargées. Même si elle le pouvait, les anciennes données ne sont pas stockées dans le cache. Cette méthode fonctionne dans Firefox et Safari. Heck, même dans IE10!XHRS
. Je suis pleinement en mesure de télécharger le film, mais quand la vidéo commence à jouer, Chrome essaye de télécharger la vidéo à partir du serveur. J'ai même essayé de passer le film en HTML en base64, mais c'est beaucoup de donnéesFileAPI
. Google Chrome n'est pas en mesure de créer BLOB assez grand et les accidents.
Toute aide est la bienvenue!
ps. Je suis conscient de l'od et de questions similaires, mais j'espère que quelque chose a changé depuis qu'ils ont été posées.
source d'informationauteur Michal
Vous devez vous connecter pour publier un commentaire.
Parce S3 prend en charge partielle des téléchargements, Chrome initialement tampons "seulement ce qui est nécessaire" à l'avant de la tête de lecture et puis arrête de mise en mémoire tampon. Il continuera de mise en mémoire tampon "que ce qui est nécessaire" lorsque la vidéo commence à jouer. Cela signifie que, en fonction de l'utilisateur, la vitesse de téléchargement, il cessera de mise en mémoire tampon maintenant et puis, juste parce qu'il dispose de suffisamment de mémoire tampon de jouer en continu.
Mais si vous mettre la vidéo en pause après avoir joué un peu, Chrome pas arrêter de mise en mémoire tampon et d'aller à travers tout le chemin à la fin.
Cet exemple exploite la technique de tampon de la vidéo hors de l'écran avant d'afficher sur la page.
Testé sur Chrome 32
Il y a plusieurs façons de charger une vidéo, tout le chemin puis le lire:
1. Il est le goody goody navigateur développeur serait fier de la manière:
2. Et il y a les paresseux "Mais, je vais chercher du tunnel carpien!" développeur façon:
Sources:
http://www.w3schools.com/tags/tag_video.asp
comment faire pour exécuter du code js lorsque la vidéo est entièrement mis en mémoire tampon/chargement
Comment puis-je ajouter de nouvelles Vidéo entièrement à partir de JavaScript?
javascript html <video> load() & play() de la fonction de pas de tir
http://www.w3.org/wiki/HTML/Elements/video
Avez-vous essayé le
canplaythrough
événement?Pas dans le sens traditionnel du terme, je veux dire. Plutôt dans un "hacky".
canplaythrough
est déclenché lorsque le navigateur détecte qu'il a assez de vidéo tamponnée à jouer en continu sans interruption. Je devine que cet événement déclenche, en même temps que chrome pauses de mise en mémoire tampon. Si c'est le cas, il pourrait être utilisé pour déclencher une demande pour le reste de la vidéo.Je ne l'ai pas essayé, mais la vidéo HTML5 objet contient un tampon de propriété
Pourriez-vous essayer de surveillance de la mémoire tampon (comme avec ce fil chrome, html5 vidéo mis en mémoire tampon.fin de l'événement)
Ensuite continuellement changer l'heure actuelle à droite avant que la mémoire tampon de temps à l'aide de
Être prudent en utilisant la vidéo.mise en mémoire tampon.fin(0). Selon mon expérience, il fonctionne avec Chrome, mais il ne fonctionne pas avec IE9.
Je ne sais pas ce qui se passe, IE9 semble oublier de faire la dernière mise à jour de la vidéo.mise en mémoire tampon.fin() à la fin du processus de mise en mémoire tampon et de la vidéo.mise en mémoire tampon.fin(0) est un peu plus petite que la vidéo.durée.
Donc, si vous pensez que votre page pourrait être utilisé avec un autre navigateur que Chrome, ne pas utiliser de la vidéo.mise en mémoire tampon.fin(0).