Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   универсальный плеер. Как определить аудио или видео? (http://www.flasher.ru/forum/showthread.php?t=126081)

iflamberg 09.06.2009 16:13

универсальный плеер. Как определить аудио или видео?
 
Привет. Меня попросили сделать универсальный плеер для сайта. Т.е. чтобы в зависимости от преданных параметров проигрывал аудио/видео поток с сайта.

Проблема вот в чем. Для проигрывания видео используется NetStream. Для проигрывания аудио - Sound. Принимает плеер линк на проигрываемый файл через FlashVars. Как определить что для линка использовать - NetStream или Sound?

Snut 09.06.2009 16:28

а вторую переменную не передать? ну это самый простой способ

iflamberg 09.06.2009 16:31

ну передать еще одну переменную с flashvars самый очевидный способ. Но, как-то некрасиво =/

Snut 09.06.2009 16:51

а ссылка какого вида должна быть?

iflamberg 09.06.2009 16:58

по расширению файла неполучится определить, т.к. ссылки вида http://80.245.117.94:4234/ , т.е. на аудио или видео поток.

Вообще вот смотрю rutube. И у них даже если аудиозапись - передается ссылка на flv-файл. Например http://rutube.ru/tracks/709969.html?...1d4edea3c5fb8b - это всем известное "не единого разрыва". А плееру передается "...&file=http%3A%2F%2Fbl.rutube.ru%2F1fc26a9ba9cb36133d1d4edea3c5fb8b.iflv..."

Snut 09.06.2009 17:56

ну есть у меня догадка что можно по байтикам разобраться, но это так пальцем в нЁбо

kackbip 09.06.2009 18:28

По умолчанию ловите поток с помощью Sound, если ошибка всплывает то значит там видео :)))) Это такая автоматическая оценка контента потока :))) Недокументированная.

А по байтикам было бы легко разобраться. Только ни в Sound ни в NetStream байтики недоступны на fp9

О придумал!
Можно воспользоваться классом URLStream. Считываем первые 3 байта потока и глядим что там. Как известно, заголовок flv файла начинается с FLV:
Field | Type | Comment
Signature | UI8 | Signature byte always 'F' (0x46)
Signature | UI8 | Signature byte always 'L' (0x4C)
Signature | UI8 | Signature byte always 'V' (0x56)


Часовой пояс GMT +4, время: 17:24.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.