我正在使用flash.net.NetStream和flash.media.Video来播放.flv,下面是一些代码:
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);这样就可以播放视频了,但是我怎么知道视频什么时候从头到尾播放过呢?如何知道视频是否全长播放?
附言:很抱歉我的英语不好。
发布于 2011-07-13 05:57:16
Bartek答案是最准确的,但我发现我需要的代码是"NetStream.Play.Stop"
代码"NetStream.Play.Complete"不存在。
stream.addEventListener(NetStatusEvent.NET_STATUS, statusChanged);
function statusChanged(stats:NetStatusEvent) {
if (stats.info.code == 'NetStream.Play.Stop') {
trace('the video has ended');
}
}这是有效的,因为你不能停止流,只能暂停它(然后恢复它),所以出现这种状态的唯一方法是结束视频播放,直到结束(这就是我需要的)
附言:很抱歉我的英语不好。
发布于 2012-09-02 20:25:25
我需要的代码是:
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)
发布于 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
因此,可以在代码中的其他位置创建函数,然后像这样引用它:
function myFunction(obj:Object):void
{
//do something here
}
stream.client = {onPlayStatus: myFunction}https://stackoverflow.com/questions/6665014
复制相似问题