From:http://www.webstudio.com.cn/blog/?p=554 public class Wsvideo extends Sprite { public function Wsvideo() { init(); private function init():void { myvideo.attachNetStream(ns); //获取cuePoint和metaData信息.此处要比AS2更简单. stage.addEventListener(MouseEvent.MOUSE_DOWN, onSwitchMovie); } trace(infoObject.name); } } }
使用As 3播放视频,与AS2的方法上大体上相似,相比来讲对于cuePoint和metaData的处理AS3会显得更简单,并且方法更多,另外对于netStream的方法在AS3中也增加了许多.下面的是一个小的测试.
package cn.com.webstudio{
import flash.display.Sprite;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.events.MouseEvent;
private var myvideo:Video;
private var nc:NetConnection;
private var ns:NetStream;
}
//创建一个大小为400,240的video对象.
myvideo=new Video(400,240);
addChild(myvideo);
nc=new NetConnection();
nc.connect(null);
ns=new NetStream(nc);
ns.play("wsvideo.flv");
ns.bufferTime =10;
var customclient:Object = new Object();
customclient.onCuePoint = cuePointHandler;
customclient.onMetaData = metaDataHandler;
//设定client属性为customclient对象。那么customclient对象的两个方法将被调用。
ns.client = customclient;
private function cuePointHandler(infoObject:Object):void{
private function metaDataHandler(infoObject:Object):void{
trace(infoObject.duration);
private function onSwitchMovie(event:MouseEvent):void{
//As3.0中netStream中的新的togglePause()方法.
ns.togglePause();
}
}
在上面的代码,如果与AS2相比,现在只需要创建一个video实例即可,不需象在AS2中那需要在库中创建视频对象,当然这里主要是指不使用组件的方式.第二处是关于cuePoint和metaData的处理,在As3.0只需要创建一个对象如上面创建的是customclient对象,它相当于是为onCuePoint和onMetaData创建了事件侦听器.当事件发生时,执行cuePointHandler和metaDataHandler事件处理函数.最后将ns的client属性设置为customclient。client属性的主要是用于指定哪个对象的方法将调用。可参考帮助文件。AS3 中的togglePause();是一个不错的方法,自动在停止和播放之间切换。
鼠标点击停止播放,再次点击继续播放。
ps: 示范中的视频是我听过的DJ Mix中比较有中国特色的。来自中国的Jamaster A,你所要的做的就是戴上耳麦,放大音量,闭上眼睛...注意18以下的就不要听了
.
