2010-10-01 22 views
4

J'ai créé un lecteur vidéo personnalisé pour le Web. Sur certaines machines que je lance, le chargement du fichier .flv commencera alors, aucune progression ne sera faite pendant 30 secondes à une minute, puis montrera que la vidéo est complètement chargée. Je vérifie combien a été chargé en utilisant un bytesLoaded/bytesTotal dans un Event.ENTER_FRAME. Lorsque tracée séparément ce qui semble se produire quand il montre pleinement chargé les changements de valeur bytesTotal à la valeur actuelle bytesLoaded provoquant mon lecteur vidéo à enregistrer que mon pourcentage de charge à 1. J'ai tracé la valeur de l'événement NetStatus.code et il n'y a pas mettre à jour pour montrer qu'il y a eu une sorte d'erreur. Tout ce que je reçois sont un NetStream.Play.StartNetStream.Buffer.Full puis il attendra et réinitialisera la valeur totale des octets.Problèmes lors du chargement d'une vidéo NetStream

Donc, ce que je demande est s'il y a un moyen de gérer ce problème?

+0

Lorsque vous dites "No-Progres a été faite", voulez-vous dire sur votre barre de progression OU en fait le chargement? Avez-vous surveillé le chargement avec Firebug/Activity Monitor/Charles Proxy etc.? Aussi, combien réglez-vous votre tampon? Est-ce que vous mettez en pause/commencez la lecture manuellement ou est-ce que cela signifie de jouer automatiquement quand le tampon est plein? –

+0

Cela semble avoir été un problème lié à la fonctionnalité de recherche allant au-delà de la quantité tamponnée. Cela n'est arrivé que sur certaines machines et avec une mise à jour de la carte graphique et une mise à jour de FlashPlayer, le problème ne s'est plus produit. Cela combiné avec un contrôle plus serré de l'endroit où les commandes de recherche peuvent être émises et un tampon dynamiquement modifié pour s'adapter à différentes vitesses de connexion, le problème a disparu sur toutes les machines sur lesquelles je l'ai testé. J'apprécie que vous reveniez à moi cependant. C'était un problème étrange et je n'arrive plus à le faire régulièrement après les mises à jour. – Snikk

Répondre

1

Il ne semble pas être une réponse spécifique à ce problème. J'ai depuis fait une autre tentative au problème et il y a deux leçons que j'ai apprises.

1) Vous pouvez coder autour de la plupart des lacunes dans la classe NetStream en ne permettant pas à tenter de rechercher après le point chargé à l'aide des bytesLoaded, bytesTotal et bufferTime propriétés. Cela peut vous permettre de vous assurer que vous ne permettez jamais que la recherche soit tentée à un moment qui pourrait causer un problème. 2) Laissez toujours la dernière tentative de recherche se terminer et manipulez-la correctement avant de tenter d'en envoyer une autre.

0

Jouez-vous un mp4 dont l'atome moov (par exemple les métadonnées) se trouve à la fin du fichier? Si tel est le cas, Flash ne peut pas lire le fichier tant que le fichier entier n'est pas chargé et qu'il est capable de lire les métadonnées.

Cet outil devrait fixer votre fichier vidéo: http://renaun.com/blog/code/qtindexswapper/

+0

Je suis familier avec la spécification moov. La lecture initiale de la vidéo est déclenchée par les métadonnées reçues, ce qui ne peut pas être le cas. La vidéo que je reproduis dans cette instance est un FLV utilisant le codec On2 VP6 qui a les métadonnées juste au début du fichier. Le problème était avec la recherche pendant le chargement de la vidéo pendant la lecture. Si elle a tenté de dépasser le point chargé. – Snikk