2010-04-07 10 views
0

J'essaie de redimensionner dynamiquement une flv en lecture dans un lecteur flash. Pour ce faire, j'ai besoin de la largeur/hauteur du flv pour pouvoir conserver le format d'origine.Comment traiter tard avec onMetaData dans IE?

J'ai remarqué que dans Firefox, l'événement onMetaData sera frappé immédiatement, et la vidéo sera redimensionnée correctement. Dans IE cependant, onMetaData n'est pas atteint jusqu'à ce que le tampon soit plein et que la vidéo commence à jouer.

Une solution à laquelle j'ai pensé est de mettre le tampon initial à quelque chose de proche de 0 (par exemple 0,01). Ensuite, le tampon sera instantanément saturé et la vidéo sera redimensionnée. Le problème que j'ai avec ceci est faible utilisateurs de bande passante aura une courte "pulvérisation" de la vidéo (0,5 secondes disent) au début avant de passer à la prochaine, plus grande, tampon.

Existe-t-il une meilleure façon de gérer ce comportement dans IE? Pouvez-vous "récupérer" manuellement les méta-données d'un fichier FLV avant même de les lire?

Répondre

1

Il est possible de charger le fichier FLV et de lire les octets sous la forme d'un ByteArray pour obtenir les métadonnées. Les informations sur les métadonnées doivent figurer dans l'en-tête du fichier. Je ne suis pas sûr si c'est la meilleure approche cependant. Vous pourriez probablement juste charger dans le premier X nombre d'octets pour obtenir l'en-tête du fichier FLV, de sorte que vous n'avez pas besoin de charger le fichier FLV entier deux fois.

Voici ceci en action: un FLV tool j'ai construit il y a un moment qui fait cela (avec un FLV local). Cela charge le fichier complet, mais vous ne voudriez évidemment que charger l'en-tête.

+0

Cela semble être utile. Je n'ai pas vu la source cependant? – David