Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.12.2012, 15:25
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 1  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
По умолчанию Событие о размере видео приходит через раз

Есть простенький плеер (Video, NetStream, NetConnection). Ему по http (а на тестах еще и с локального компа) передается ссылка на видео (.flv) и начинается воспроизведение. При этом мы "подписываемся" на колбэк:
Код AS3:
public function onMetaData(info:Object):void
Проблема в том, что при одном и том же файле (загружаемом в тестах с локального ПК) колбэк срабатывает через раз. Т.е. видео тоже, код не меняется, а в одном случае метод отрабатывает, в другом - нет. Все эти пляски для того, что бы определить продолжительность видео. С чем это может быть связано? Как корректно определить продолжительность видео? Заранее спасибо.
Как вариант - прописать продолжительность для каждого видео вручную, но т.к. таких роликов около 7 гигов, очень бы этого не хотелось.

ЗЫ. Не уверен, что тема относится непосредственно к этому разделу, пожалуй будет зависеть от предложенных решений.
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 25.12.2012, 18:11
XoJlToH вне форума Посмотреть профиль Отправить личное сообщение для XoJlToH Найти все сообщения от XoJlToH
  № 2  
Ответить с цитированием
XoJlToH
 
Аватар для XoJlToH

Регистрация: Sep 2006
Сообщений: 145
Покажите свой код подписки на метадату. Там были какие то особенности с подпиской внутри нетсрима

Старый 25.12.2012, 22:30
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 3  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Код AS3:
_ns.client = this;
И далее в том же классе.
Код AS3:
public function onMetaData(info:Object):void {
	trace("metadata: duration=" + info.duration);
}
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 26.12.2012, 13:42
Stone вне форума Посмотреть профиль Отправить личное сообщение для Stone Найти все сообщения от Stone
  № 4  
Ответить с цитированием
Stone
 
Аватар для Stone

Регистрация: May 2001
Адрес: Москва
Сообщений: 670
onMetaData не приходит если начать работать со стримом. стоп, плэй, сик вроде, уже не помню точно какие влияют, в хэлпе было.

Старый 27.12.2012, 15:09
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 5  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Цитата:
если начать работать со стримом
Понятно, что для получения данных необходимо хоть что-то загрузить. Вопрос, почему это происходит не постоянно.
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 28.12.2012, 11:25
Stone вне форума Посмотреть профиль Отправить личное сообщение для Stone Найти все сообщения от Stone
  № 6  
Ответить с цитированием
Stone
 
Аватар для Stone

Регистрация: May 2001
Адрес: Москва
Сообщений: 670
не совсем так. необходимо именно дождаться прихода матаданных, и только после этого, делать хоть что то.

Старый 28.12.2012, 13:53
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 7  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Stone, немного не понял. Если метаданные не являются отдельным файлом, т.е. вшиты в видеофайл (про NetStream-ы как таковые пока не говорим), то как получить эти данные до начала проигрывания? Не припомню такого в официальной справке. Может невнимательно читал...
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 28.12.2012, 15:16
Stone вне форума Посмотреть профиль Отправить личное сообщение для Stone Найти все сообщения от Stone
  № 8  
Ответить с цитированием
Stone
 
Аватар для Stone

Регистрация: May 2001
Адрес: Москва
Сообщений: 670
ну конечно первый раз нужно стартануть стрим

Код AS1/AS2:
stream.play(url);
и пока мета не пришла ничего не делать.
обычно на netStatusHandler вешают разные обработчики состояния, а они частенько приходят раньше чем мета.

Старый 28.12.2012, 15:27
kackbip вне форума Посмотреть профиль Отправить личное сообщение для kackbip Найти все сообщения от kackbip
  № 9  
Ответить с цитированием
kackbip
 
Аватар для kackbip

Регистрация: Sep 2007
Адрес: Tomsk
Сообщений: 943
Отправить сообщение для kackbip с помощью ICQ Отправить сообщение для kackbip с помощью Skype™
Метадата обычно вшита в начало файла. Если вы берете файл с начала то первым делом вы получите метаданные. Хотя это как бы не аксиома, но так должно быть для корректного проигрывания.

Вполне возможно, что некоторые ролики тупо не содержат в метаданных продолжительность.

Для того чтобы метадата во всех роликах удовлетворяли вашим условиям возможно имеет смысл прогнать их через flvtool2

Создать новую тему Ответ Часовой пояс GMT +4, время: 16:55.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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