2010-01-11 72 views
1

我已经使用AS3 flash.media.Video对象(不是FLV播放组件)创建了FLV视频播放器,并且我试图侦听嵌入式事件和提示点在FLV视频中,但当我追踪电影时我没有收到任何内容。提示点不是动态创建的,它们位于FLV视频中。使用AS3视频对象(非组件)检测NetStream事件

视频嵌入代码:同一类

// 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); 
} 

有什么我缺少有错捕获从我的净流事件?

+0

我觉得你的代码没问题,但flv文件本身可能有问题。尝试使用另一个文件。 – 2010-03-19 05:58:08

回答

0

这几乎与我工作的代码完全一样。我能想到的唯一事情就是创建Video对象本身。我将它声明为类本身的一个属性,但我真的不知道为什么在函数调用中声明会很重要,因为它仍然添加到舞台上。

我相信你看到视频好吗?

一个相当愚蠢的猜测是,如果attachNetStream调用对NetStream执行某些操作,则尝试切换客户端分配和attachNetStream调用。

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