首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AS3 -如何知道视频是否已结束?

AS3 -如何知道视频是否已结束?
EN

Stack Overflow用户
提问于 2011-07-12 21:34:27
回答 4查看 12.4K关注 0票数 5

我正在使用flash.net.NetStream和flash.media.Video来播放.flv,下面是一些代码:

代码语言:javascript
运行
复制
var stream:NetStream = new NetStream(connection);

//next line is to avoid an error message
stream.client = {onMetaData: function(obj:Object):void {}}

var video:Video = new Video();
video.attachNetStream(stream);
stream.play("url.to/video");

addChild(video);

这样就可以播放视频了,但是我怎么知道视频什么时候从头到尾播放过呢?如何知道视频是否全长播放?

附言:很抱歉我的英语不好。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-07-13 05:57:16

Bartek答案是最准确的,但我发现我需要的代码是"NetStream.Play.Stop"

代码"NetStream.Play.Complete"不存在。

代码语言:javascript
运行
复制
stream.addEventListener(NetStatusEvent.NET_STATUS, statusChanged);

function statusChanged(stats:NetStatusEvent) {
    if (stats.info.code == 'NetStream.Play.Stop') {
         trace('the video has ended');
    }
}

这是有效的,因为你不能停止流,只能暂停它(然后恢复它),所以出现这种状态的唯一方法是结束视频播放,直到结束(这就是我需要的)

附言:很抱歉我的英语不好。

票数 14
EN

Stack Overflow用户

发布于 2012-09-02 20:25:25

我需要的代码是:

代码语言:javascript
运行
复制
        public function statusChanged(stats:NetStatusEvent):void 
        {
            trace(stats.info.code);
            if (stats.info.code == 'NetStream.Buffer.Empty') 
            {
                trace('the video has ended');
            }
        }

(我唯一需要做的更改是将Play.Stop更改为Buffer.Empty)

票数 1
EN

Stack Overflow用户

发布于 2011-07-12 21:49:40

我相信您会想要向stream.client对象添加另一个名为'onPlayStatus‘的函数

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetStream.html#event:onPlayStatus

因此,可以在代码中的其他位置创建函数,然后像这样引用它:

代码语言:javascript
运行
复制
function myFunction(obj:Object):void
{
    //do something here
}
stream.client = {onPlayStatus: myFunction}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6665014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档