Обнаружение событий NetStream с видеообъектом AS3 (не компонентом) - PullRequest
1 голос
/ 11 января 2010

Я создал проигрыватель FLV-видео с использованием объекта AS3 flash.media.Video (не компонента воспроизведения FLV), и я пытаюсь прослушивать мета-события и метки, встроенные в видео FLV, но не получаю их, когда Я прослеживаю фильм. Контрольные точки не создаются динамически, они находятся в видео FLV.

Код для вставки видео:

    // Initialize net stream
nc = new NetConnection();
nc.connect (null); // Not using a media server.
ns = new NetStream(nc);
// Add video to stage
vid = new Video(456,675);
addChild (vid);
// Add callback method for listening on
// NetStream meta data
client = new Object();
ns.client = client;
client.onMetaData = this.nsMetaDataCallback;
client.onCuePoint = this.onCuePoint; 
// Play video
vid.attachNetStream ( ns );
ns.play ("flv/00_010.flv");

обработчики обратного вызова в том же классе, что и код выше:

public function onCuePoint(info:Object):void { 
trace("cuePoint: time = " + info.time + " name = " + info.name + " type = " + info.type); 
if (ns) ns.pause();
}

public function nsMetaDataCallback (mdata:Object):void {
trace (mdata.duration);
}

Есть ли что-то, что мне не хватает, неправильно записывать события из моего сетевого потока?

1 Ответ

0 голосов
/ 11 января 2010

Это почти тот же код, который у меня работает. Единственное, о чем я могу думать, - это создание самого объекта Video. Мой объект объявлен как свойство самого класса, хотя я не могу понять, почему иметь объявление в вызове функции имеет значение, поскольку оно все еще добавляется на сцену.

Надеюсь, вы видите видео, хорошо?

Одной довольно глупой догадкой было бы попытаться переключить назначение клиента и вызовы attachNetStream, если вызов attachNetStream что-то делает с NetStream.

vid.attachNetStream ( ns )
ns.client = client;
client.onMetaData = this.nsMetaDataCallback;
client.onCuePoint = this.onCuePoint;
...