网页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 文件。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线