//---------------------------容错判断---------------------------//
in_ns.onStatus = function(info) {
if (info.code == "NetStream.Buffer.Full") {
trace("播放状态: "+info.code);
trace("缓冲区已满");
btn_pause.shape_play._visible = true;
btn_pause.shape_pause._visible = false;
} else if (info.code == "NetStream.Buffer.Empty") {
trace("播放状态: "+info.code);
trace("数据缓冲区为空");
btn_pause.shape_play._visible = false;
btn_pause.shape_pause._visible = true;
} else if (info.code == "NetStream.Failed") {
trace("播放状态: "+info.code);
trace("传输中有错误发生");
//无需反馈
} else if (info.code == "NetStream.Pause.Notify") {
trace("播放状态: "+info.code);
trace("播放暂停");
btn_pause.shape_play._visible = false;
btn_pause.shape_pause._visible = true;
} else if (info.code == "NetStream.Play.Failed") {
trace("播放状态: "+info.code);
trace("播放出错");
//严重错误
} else if (info.code == "NetStream.Play.PublishNotify") {
trace("播放状态: "+info.code);
trace("发布开始,信息已经发送到所有订阅者");
//无需反馈
} else if (info.code == "NetStream.Play.Reset") {
trace("播放状态: "+info.code);
trace("播放列表重置");
//无需反馈
} else if (info.code == "NetStream.Play.Start") {
trace("播放状态: "+info.code);
trace("播放开始");
btn_pause.shape_play._visible = false;
btn_pause.shape_pause._visible = true;
} else if (info.code == "NetStream.Play.Stop") {
trace("播放状态: "+info.code);
trace("播放停止");
//无需反馈
} else if (info.code == "NetStream.Play.StreamNotFound") {
trace("播放状态: "+info.code);
trace("播放的实时流或文件不存在");
//严重错误
} else if (info.code == "NetStream.Play.UnpublishNotify") {
trace("播放状态: "+info.code);
trace("发布停止,信息已经发送到所有订阅者");
//无需反馈
} else if (info.code == "NetStream.Publish.BadName") {
trace("播放状态: "+info.code);
trace("发布的数据流已经被发布");
//无需反馈
} else if (info.code == "NetStream.Publish.Idle") {
trace("播放状态: "+info.code);
trace("发布者闲置过长");
//严重错误
} else if (info.code == "NetStream.Publish.Start") {
trace("播放状态: "+info.code);
trace("发布开始");
btn_pause.shape_play._visible = false;
btn_pause.shape_pause._visible = true;
} else if (info.code == "NetStream.Record.Failed") {
trace("播放状态: "+info.code);
trace("录制文件出错");
//严重错误
} else if (info.code == "NetStream.Record.NoAccess") {
trace("播放状态: "+info.code);
trace("没有足够的文件访问权限");
//严重错误
} else if (info.code == "NetStream.Record.Start") {
trace("播放状态: "+info.code);
trace("文件录制开始");
//无需反馈
} else if (info.code == "NetStream.Record.Stop") {
trace("播放状态: "+info.code);
trace("录制暂停");
//无需反馈
} else if (info.code == "NetStream.Seek.Failed") {
trace("播放状态: "+info.code);
trace("数据流定位出错");
//严重错误
} else if (info.code == "NetStream.Seek.Notify") {
trace("播放状态: "+info.code);
trace("数据搜索定位成功");
btn_pause.shape_play._visible = false;
btn_pause.shape_pause._visible = true;
} else if (info.code == "NetStream.Unpause.Notify") {
trace("播放状态: "+info.code);
trace("恢复播放");
btn_pause.shape_play._visible = false;
btn_pause.shape_pause._visible = true;
} else if (info.code == "NetStream.Unpublish.Success") {
trace("播放状态: "+info.code);
trace("停止发布");
//无需反馈
}
};
//---------------------------time progress bar---------------------------//
time_barColor = new Color(btn_time.time_bar);
var timeProgressAct:Boolean = false;
var inTim:Number;
var barLeft = btn_time.time_progress._x;
var barRight = btn_time.time_progress._x+btn_time.time_progress._width-btn_time.time_bar._width;
var barBottom = barTop=btn_time.time_bar._y;
//确定slider可移动的左右及上下边界
btn_time.time_bar.onRollOver = function() {
time_barColor.setRGB(barActColor);
};
btn_time.time_bar.onRollOut = function() {
time_barColor.setRGB(barDefaultColor);
};
btn_time.time_bar.onPress = function() {
time_barColor.setRGB(barActColor);
this.startDrag(false,barLeft,barTop,barRight,barBottom);
timeProgressAct = true;
};
btn_time.time_bar.onRelease = function() {
time_barColor.setRGB(barDefaultColor);
this.stopDrag();
inTim = btn_time.time_bar._x*serverTim/(barRight-barLeft);
trace(serverTim);
in_ns.seek(inTim);
in_ns.play();//计算并且跳转到和滑块位置对应的播放时间
timeProgressAct = false;
//trace("目前移动到"+btn_time.time_bar._x+"位置");
//trace("影片时长"+tim);
//trace("inTime="+inTim);
//trace("in_ns.time="+in_ns.time);
};
btn_time.time_bar.onReleaseOutside = btn_time.time_bar.onRelease;
//---------------------------time container---------------------------//
function convertTime(sec, role) {
//定义格式化时间用的函数并且根据role的需要输出不同的数据
var sec:Number;
var role:String;
sec = Math.floor(sec);
var day = (Math.floor(sec/3600/24)<10) ? "0"+Math.floor(sec/3600/24) : Math.floor(sec/3600/24);
var hour = (Math.floor(sec%(3600*24)/3600)<10) ? "0"+Math.floor(sec%(3600*24)/3600) : Math.floor(sec%(3600*24)/3600);
var minute = (Math.floor(sec%3600/60)<10) ? "0"+Math.floor(sec%3600/60) : Math.floor(sec%3600/60);
var second = (sec%60<10) ? "0"+sec%60 : sec%60;
if ((day>0) || (hour>0) || (minute>0) || (second>0)) {
return hour+":"+minute+":"+second;
} else if (role != "server") {
return "00:00:00";
} else if (role="server") {
return "Live";
}
}
onEnterFrame = function () {
btn_time.time_container.time_text = convertTime(in_ns.time, "client")+"\x20"+"/"+"\x20"+convertTime(serverTim, "server");
if (timeProgressAct == false) {
btn_time.time_bar._x = in_ns.time/serverTim*(barRight-barLeft);
}
if ((in_ns.bufferLength>0) && (in_ns.bufferTime>=in_ns.bufferLength) && (btn_pause.shape_pause._visible == true)) {
//trace("已经缓冲"+in_ns.bufferLength+"秒");
//播放缓冲动画(自己搞个带LOGO的版权动画出来吧我已经把我们公司的去掉了)
} else {
//trace("已经缓冲"+in_ns.bufferLength+"秒");
//隐藏缓冲动画
}
};
附件:
您所在的用户组无法下载或查看附件,您需要注册/登录后才能查看!