package {
import flash.display.*;
import flash.events.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
//動画のストリーミング再生
public class VideoEx extends Sprite {
private var label:TextField; //ラベル
private var connection:NetConnection;//コネクション
private var stream:NetStream; //ストリーム
//コンストラクタ
public function VideoEx() {
//ラベルの追加
label=addLabel("VideoEx");
//コネクションの生成
connection=new NetConnection();
//イベントリスナーの追加
connection.addEventListener(
NetStatusEvent.NET_STATUS,onNetStatus);
connection.addEventListener(
SecurityErrorEvent.SECURITY_ERROR,onSecurityError);
//ファイルとの接続を確立
connection.connect(null);
}
//ネット状態イベントの処理
private function onNetStatus(evt:NetStatusEvent):void {
switch (evt.info.code) {
//成功
case "NetConnection.Connect.Success":
//ストリームの生成
var stream:NetStream=new NetStream(connection);
//イベントリスナーの追加
stream.addEventListener(
NetStatusEvent.NET_STATUS,onNetStatus);
stream.addEventListener(
AsyncErrorEvent.ASYNC_ERROR,onAsyncError);
//メタデータの取得★
var obj:Object=new Object();
obj.onMetaData=onMetaData;
stream.client=obj;
//動画の表示領域の生成
var video:Video=new Video(128,96);
video.x=56;
video.y=72;
addChild(video);
video.attachNetStream(stream);
//動画の再生開始
stream.play("http://npaka.net/flash/sample.flv");
break;
//ファイルが見つからない
case "NetStream.Play.StreamNotFound":
label.text="ファイルが見つからない";
break;
}
}
//メタデータ取得イベントの処理★
private function onMetaData(info:Object):void {
}
//非同期エラーイベントの処理
private function onAsyncError(evt:AsyncErrorEvent):void {
}
//セキュリティエラーイベントの処理
private function onSecurityError(evt:SecurityErrorEvent):void {
label.text="セキュリティエラー";
}
//ラベルの追加
private function addLabel(text:String):TextField {
var label:TextField=new TextField();
addChild(label);
label.text=text;
label.autoSize=TextFieldAutoSize.LEFT;
label.selectable=false;
return label;
}
}
}
|