网页flash文本抓取器(初学者播放函数playflv())
优采云 发布时间: 2022-03-28 22:03网页flash文本抓取器(初学者播放函数playflv())
本文是flash初学者的好资料和方向,欢迎浏览。
首先新建一个文档,将背景颜色设置为黑色,其他默认,然后创建四个图层。
第一层用于放置视频组件,如下:
1. 在“库”面板(“窗口”>“库”)中,从“库”弹出菜单中选择“新建视频”。
2. 在“视频属性”对话框中,为视频元素命名并选择“视频”(由 ActionScript 控制)。
3. 将视频对象从“库”面板拖到舞台中间以创建视频对象的实例。
4. 将此视频元素的实例名称设为“my_video”。
第二层用来放视频地址输入栏,方法如下:
1、使用文本工具(快捷键T)在舞台左下方画一个地址输入文本框,类型选择“输入文本”类型。
2. 在“线条类型”弹出菜单中选择“单行”,并确保选中“在文本周围显示边框”。
3. 将此文本框的实例名称设为“url”。
第三层用来放播放开始按钮,方法如下:
1、在“库”面板(“窗口>”库”)新建一个组件按钮,按钮样式自己制作,暂时可以使用。
2、将新建的按钮对象从“库”面板拖到舞台地址输入框的后面,创建播放开始按钮。
3. 将播放开始按钮命名为“play_bt”。
第四层用来放所有的ActionScript:
先初始化
//创建一个网络连接对象
var my_nc:NetConnection = new NetConnection();
//创建本地流连接
my_nc.connect(null);
//创建一个NetStream对象
var my_ns:NetStream = new NetStream(my_nc);
//写一个播放函数playflv()
函数 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输入框的视频文件地址,调用play函数播放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 || totalbytesinfo.text = "0%";
bar._width = 1;
} 别的 {
var nowLoadPercent = Math.round(loadedbytes/totalbytes*100);
if (isNaN(nowLoadPercent)) {
info.text = "0%";
bar._width = 1;
} 别的 {
info.text = nowLoadPercent+"%";
bar._width = nowLoadPercent*35/100;
if (nowLoadPercent == 100) {
删除 this.onEnterFrame;
}
}
}
}
3.视频尺寸修正或调整
//这个比较重要,因为视频大小比例一般是不同的,所以在播放的时候要进行调整,避免失真和变形。
//原理是获取flv的大小,然后重新调整my_video的大小,最后居中,必要时放大(此处省略)。
//先写一个改变大小的函数changesize(w, h),w是要改变的宽度,h是要改变的高度
函数改变大小(w,h){
//更改为传入的参数大小
my_video._width = w;
my_video._height = h;
//trace("w:"+w+"h:"+h);//用于测试
//位置居中,如果你的视频舞台是550宽400高
my_video._x = 550/2-w/2;
my_video._y = 400/2-h/2;
}
//然后得到flv的固有大小,调用上面的函数改变它
//在调用 my_ns.play() 方法之后但在视频播放头前进之前调用此处理程序
my_ns.onMetaData = 函数(信息对象:对象){
//获取FLV文件中嵌入的描述信息,这里获取的是宽/高
var flv_width = infoObject.width;
var flv_height = infoObject.height;
// 改变大小
改变大小(flv_width,flv_height);
};
4.播放时间和进度
//原理和下载进度类似,先获取总时长,再以百分比的形式获取当前时间,也可以作为进度条。//定义总持续时间全局变量并获取其值。
变量 flv_duration;
my_ns.onMetaData = 函数(信息对象:对象){
//获取FLV文件中嵌入的描述信息,这里获取总时长(单位:秒)
var flv_duration = infoObject.duration;
};
//注意:这个可以和得到宽高一起写。
//获取当前播放时间
var flv_thistime = my_ns.time;
//然后就可以进行播放进度了,和下载进度类似。可以自己制作,这里省略。
5.音量控制
//这个有点复杂,你得把FLV文件中的音频附加到舞台上的影片剪辑上,然后控制
//创建一个新的影片剪辑 my_ns_mc 并附加音频
my_ns_mc.attachAudio(my_ns);
//为影片剪辑创建一个新的Sound对象
var my_ns_sound = 新声音(my_ns_mc);
//初始化音量(这里默认8个0)
var flv_volume = 80;
my_ns_sound.setVolume(flv_volume);
//最后可以通过控制flv_volume的大小(0到100之间)来改变音量。
//这部分制作也省略了,大家可以自由发挥,还可以创建静音功能,即flv_volume为0
//另外,像快进、快退、缓冲显示等都可以实现,大家可以自己研究。终于,一个FlashFLV播放器的制作基本完成了。建议想学flash的朋友自己动手。不要总是想下载任何源代码然后修改它,这样你将无法理解其中的许多奥秘!
增加一个相关问题:flv播放没有图像,只有声音,这是因为flv文件是用flash8编码格式压缩的,而你发布的flash播放器是flash 7或更低版本,所以可以升级到8版本,或者压缩flash7 编码格式的 flv 文件。