Error events you must handle in play flv video

来源:互联网 发布:c语言 取分隔符 编辑:程序博客网 时间:2024/05/21 14:41

 用Video,NetConnection,NetStream类来加载并播放flv文件。在脚本中要处理相应的事件:

NetStatusEvent-当NetConnection对象执行connect()方法后会改变NetStatus;NetStream对象执行Play()方法时的出错处理也由它来监听。

SecurityErrorEvent-NetConnection对象执行connect()出错的监听器。

AsyncErrorEvent-NetStream对象执行play()出错的监听器。

Demo:

package {
    import flash.display.Sprite;
    import flash.events.
*;
    import flash.media.Video;
    import flash.net.NetConnection;
    import flash.net.NetStream;

    public class NetStatusEventExample extends Sprite {
        private 
var videoURL:String = "Video.flv";
        private 
var connection:NetConnection;
        private 
var stream:NetStream;

        public 
function NetStatusEventExample() {
            connection 
= new NetConnection();
            connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
            connection.connect(
null);
        }

        private 
function netStatusHandler(event:NetStatusEvent):void {
            
switch (event.info.code) {
                
case "NetConnection.Connect.Success":
                    connectStream();
                    
break;
                
case "NetStream.Play.StreamNotFound":
                    trace(
"Unable to locate video: " + videoURL);
                    
break;
            }
        }

        private 
function connectStream():void {
            
var stream:NetStream = new NetStream(connection);
            stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
            
var video:Video = new Video();
            video.attachNetStream(stream);
            stream.play(videoURL);
            addChild(video);
        }

        private 
function securityErrorHandler(event:SecurityErrorEvent):void {
            trace(
"securityErrorHandler: " + event);
        }
        
        private 
function asyncErrorHandler(event:AsyncErrorEvent):void {
            
// ignore AsyncErrorEvent events.
        }

    }
 }