Flash_FLV视频播放器制作
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
自制Flash FLV视频播放器
大家好,前不久笔者将CenFun Music Player加入flv视频播放功能,这里单独拿出来给大家做一个Flash FLV播放器(仅ActionScript控制,不使用 FLVPlayback 组件),如有不当之处还望指正。
下面就打开您的Macromedia Flash Player 8(推荐)开始吧!
首先新建文档,设置背景色黑色,其他默认,然后建四个图层。
第一层用来放视频元件,方法如下:
1,在"库"面板("窗口">"库")中,从"库"弹出菜单中选择"新建视频"。
2,在"视频属性"对话框中,命名视频元件并选择"视频"(由 ActionScript 控制)。
3,将视频对象从"库"面板拖到舞台正中间,以创建视频对象实例。
4,对此视频元件取实例名为 "my_video"。
第二层用来放视频地址输入栏,方法如下:
1,在舞台左下方用文本工具(快捷键T)画一个地址输入文本框,类型选择"输入文本"类型。
2,在"线条类型"弹出菜单中选择"单行",并确认"在文本周围显示边框"处于选中状态。
3,对此文本框取实例名为"url"。
第三层用来放播放开始按钮,方法如下:
1,在"库"面板("窗口">"库")中,新建元件按钮,按钮样式自行制作好,暂时能用就行。
2,将新建的按钮对象从"库"面板拖到舞台地址输入框后面,以创建播放开始按钮。
3,对此播放开始按钮取实例名为"play_bt"。
第四层用来放所有的ActionScript:
//首先初始化
//创建一个 NetConnection 对象
var my_nc:NetConnection = new NetConnection();
//创建一个本地流连接
my_nc.connect(null);
//创建一个 NetStream 对象
var my_ns:NetStream = new NetStream(my_nc);
//写一个播放函数playflv()
function playflv(flv) {
//参数flv是要播放的flv视频地址
//trace(flv);//测试用
// 将 NetStream 视频输入信号附加到 Video 对象,即视频元件my_video
my_video.attachVideo(my_ns);
// 设置缓冲时间,单位秒,下面设置3秒即可
my_ns.setBufferTime(3);
// 开始播放 FLV 文件
my_ns.play(flv);
}
//点击开始播放按钮开始播放
play_bt.onRelease = function() {
playflv(url.text);
//获得url输入框的视频文件地址,并调用播放函数播放url对应的flv视频文件
};
//////////////////////////////////////////////////////////////////////////////
//至此一个最简单的播放器已经做完了,下面要做的都是对其进行更多的控制和表现工作。
//这里就其几个重要的方面进行制作,其他的还需要大家发挥自己的想象去进行更好的设计制作。//注意,以下代码非必要,未经测试,望大家一个一个尝试实现。特别注意路径和实例名的对应。//*********************************
//1,播放的控制,暂停和停止的实现
//新建两个按钮,一个暂停(pause_bt),一个停止(stop_bt),原理和播放按钮一样。
pause_bt.onRelease = function() {
my_ns.pause();
};
stop_bt.onRelease = function() {
my_ns.seek(0);
//搜寻从0开始播放
my_ns.pause(true);
//参数true表示暂停,若是false则表示从暂停变为继续播放,若没有参数则为在暂停/播放中切换。
};
//*********************************
//2,视频下载进度
//这个比较简单,和一般的下载进度类似,原理就是播放时将已下载的和总共文件大小进行百分比,然后显示出来。
//新建显示百分比的静态文本(info)和进度条(bar),其初始状态、位置自行调整
this.onEnterFrame =function () {
var loadedbytes = my_ns.bytesLoaded;
//获得已经下载字节
var totalbytes = my_ns.bytesTotal;
//文件总大小
if (totalbytes == undefined || totalbytes<4000) {
info.text = "0%";
bar._width = 1;
} else {
var nowLoadPercent = Math.round(loadedbytes/totalbytes*100);
if (isNaN(nowLoadPercent)) {
info.text = "0%";
bar._width = 1;
} else {
info.text = nowLoadPercent+"%";
bar._width = nowLoadPercent*35/100;
if (nowLoadPercent == 100) {
delete this.onEnterFrame;
}
}
}
}
//*********************************
//3,视频尺寸修正或调整