Как мне справиться с поздним onMetaData в IE? - PullRequest
0 голосов
/ 07 апреля 2010

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

Я заметил, что в Firefox событие onMetaData будет происходить сразу, и размер видео будет правильно изменен. В IE, однако, onMetaData не срабатывает, пока буфер не заполнится и видео не начнет воспроизводиться.

Одним из решений, о котором я подумал, является установка начального буфера на значение, близкое к 0 (например, 0,01). Затем буфер мгновенно заполнится, и размер видео изменится.

Проблема, с которой я сталкиваюсь, заключается в том, что у пользователей с низкой пропускной способностью вначале будет короткий «брызг» видео (скажем, 0,5 секунды), прежде чем он перейдет к следующему большему буферу.

Есть ли лучший способ справиться с этим поведением в IE? Можете ли вы вручную «получить» метаданные из FLV-файла до того, как он начнет воспроизводиться?

1 Ответ

1 голос
/ 07 апреля 2010

Можно загрузить FLV и прочитать байты как ByteArray и получить из них метаданные. Информация метаданных должна быть в заголовке файла. Я не уверен, что это лучший подход. Вероятно, вы могли бы просто загрузить первые байты X, чтобы получить заголовок FLV-файла, чтобы вам не приходилось загружать весь FLV дважды.

Вот это в действии: инструмент FLV Я недавно построил это, что делает это (с локальным FLV). Это загрузит полный файл, но вы, очевидно, захотите загрузить только заголовок.

...