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

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

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

Регистрация: Dec 2008
Сообщений: 87
По умолчанию Срабатывание события onMetaData

Привет всем.
Приведу небольшой абстрактный код, так чтобы вычленить проблему.
Код AS1/AS2:
var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
my_video.attachVideo(ns);
ns.play("test.flv");
ns.onMetaData = function(infoObject:Object) {
	trace("запуск onMetaData");
};
ns.onStatus = function(infoObject:Object):Void  {
	if (infoObject.code == "NetStream.Play.Start") {
		ns.seek(0);
	}
};
Есть два flv видеоролика. Оба имеют метаданные.

Ролик 1 имеет метаданные:

Код:
filesize = 3224817
audiocodecid = 2
stereo = false
audiosamplesize = 16
audiosamplerate = 44100
videocodecid = 4
framerate = 1000
videodatarate = 0
height = 288
width = 352
duration = 57.417
Ролик 2 имеет метаданные:

Код:
canSeekToEnd = true
audiocodecid = 2
audiodelay = 0.038
audiodatarate = 64
videocodecid = 4
framerate = 25
videodatarate = 400
height = 288
width = 352
duration = 27.76
Вопрос 1: Почему onMetaData выполняется только на первом ролике? Из-за наличия в нем filesize?

Вопрос 2: Второй ролик был закодирован Adobe Flash CS3 Video Encoder. Почему в нем нет filesize?

Вопрос 3: Если убрать команду ns.seek(0), то событие будет срабатывать на обоих роликах. Объясните, если можно, в двух словах это влияние. Мне казалось, что onMetaData срабатывает после play, если ролик содержит метаданные.

Буду очень признателен, если кто-то подскажет ответы. Спасибо.

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

Регистрация: Apr 2007
Сообщений: 1,369
1) Нет, не из-за filesize;
2) Разные энкодеры зашивают разные данные;
3) Да, тогда и срабатывает onMetaData.

Зачем перемотку в начало поставили, когда видео начало проигрываться? Получается нелогично как-то.

Цитата:
Если убрать команду ns.seek(0), то событие будет срабатывать на обоих роликах.
Какое событие, onMetaData?

А как второй ролик запускаете?
__________________
john

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

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
по seek срабатывает onStatus, но не отрабатывает onMetaData
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 07.03.2009, 12:37
Bred45 вне форума Посмотреть профиль Отправить личное сообщение для Bred45 Найти все сообщения от Bred45
  № 4  
Ответить с цитированием
Bred45

Регистрация: Dec 2008
Сообщений: 87
Ребята, спасибо что ответили.
Второй ролик запускается как и первый (по очереди переименовываем их в test.flv).

Цитата:
1) Нет, не из-за filesize;
А из-за чего?

Цитата:
2) Разные энкодеры зашивают разные данные;
На работе закодированный этой же программой ролик событие onMetaData запускает, а на домашнем - никак. А настроек для матаданных в самом энкодере я не нашел.

Цитата:
Какое событие, onMetaData?
да

Цитата:
Зачем перемотку в начало поставили, когда видео начало проигрываться? Получается нелогично как-то.
Согласен. Но сейчас вопрос в другом: в различном поведении на разных роликах.

Цитата:
по seek срабатывает onStatus, но не отрабатывает onMetaData
Хорошо. Но почему не отрабатывает на ролике 2, но отрабатывает на ролике 1?

И все равно механизм мне не понятен. Запускаем play (видео, кстати, запускается), метаданные получены, что мешает сработать onMetaData еще даже до выполнения seek. Или как это seek может отключить это событие...

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

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

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


 


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


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