【问题标题】:Detect NetStream events with AS3 Video Object (not component)使用 AS3 视频对象(非组件)检测 NetStream 事件
【发布时间】:2010-01-11 18:57:47
【问题描述】:

我使用 AS3 flash.media.Video 对象(不是 FLV 播放组件)创建了一个 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);
}

从我的网络流中捕获事件有什么我遗漏的错误吗?

【问题讨论】:

  • 我觉得你的代码没问题,但是flv文件本身可能有问题。尝试使用另一个文件。

标签: flash actionscript-3 flv flvplayback


【解决方案1】:

这与我工作的代码几乎完全相同。我唯一能想到的就是创建 Video 对象本身。我已将我的声明为类本身的属性,尽管我真的不知道为什么在函数调用中声明会很重要,因为它仍被添加到阶段。

我相信你看视频好吗?

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-31
    • 2020-11-24
    • 2022-06-13
    • 1970-01-01
    • 1970-01-01
    • 2016-04-22
    • 2011-10-19
    • 2018-06-18
    相关资源
    最近更新 更多