参考昨天Mp3的制作,今天弄一个视频播放。其实道理差不多,今天比较懒,没用其他类库只是单独写在一起。

考虑到只是笔记就写上来。

一些元件都是在这个基础上修改的

http://blog.csdn.net/hero82748274/archive/2011/02/22/6201133.aspx

一些元件都是在舞台上命名的。

制作课件的时候,拿来练手也不错的选择。特别制作视频播放的时候经常需要用到。

package { import flash.display.Sprite; import flash.display.Stage; import flash.display.StageDisplayState; import flash.display.MovieClip; import flash.events.*; import flash.net.*; import flash.media.*; import flash.geom.*; import flash.display.SimpleButton; public class Main extends Sprite { private var position:Number = 0;//播放位置 private var video:Video; private var videoUrl:String = "2.MP4";//视频的路径 private var isPlay:Boolean = false;//是否播放 private var stream:NetStream; private var duration:Number;//时间 private var sound:SoundTransform=new SoundTransform(); public function Main() { init(); } private function init():void { init_Connection();//初始化链接 init_ui(); } //初始化视频和链接 private function init_Connection():void { video=new Video(320*1.2,240*1.2); video.x = 80; video.y = 20; addChild(video); var connection:NetConnection=new NetConnection(); connection.connect(null); stream = new NetStream(connection); var client:Object=new Object(); client.onMetaData = onMetaData;//回调函数,获取总的时间 stream.client = client; video.attachNetStream(stream); stream.bufferTime = 1;//设置缓冲时间 stream.addEventListener(NetStatusEvent.NET_STATUS,netStatusHandler); stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR,netAsyncErrorHandler); playVideo(videoUrl); } //初始化ui private function init_ui():void { playBtn.stop(); volumeBtn.stop(); playBtn.buttonMode = true; stopBtn.buttonMode = true; progressBar.controlBar.mouseEnabled = false; volumeBar.controlBar.mouseEnabled = false; progressBar.buttonMode = true; volumeBtn.buttonMode = true; volumeBar.buttonMode = true; fullScreenBtn.buttonMode=true; volumeBar.controlBar.width = volumeBar.width; //开始按钮,停止按钮,进度条监听鼠标事件 playBtn.addEventListener(MouseEvent.CLICK,onPlaySoundHandler); stopBtn.addEventListener(MouseEvent.CLICK,onStopVideoHandler); progressBar.addEventListener(MouseEvent.MOUSE_DOWN,onStartDragBarHandler); volumeBtn.addEventListener(MouseEvent.CLICK,onMuteSoundHandler); volumeBar.addEventListener(MouseEvent.MOUSE_DOWN,onStartDragVolomeBarHandler); fullScreenBtn.addEventListener(MouseEvent.CLICK,onFullScreendHandler); playBtn.gotoAndStop("pause"); isPlay = true; addEventListener(Event.ENTER_FRAME,onProgressHandler); } private function netStatusHandler(event:NetStatusEvent):void { } private function netAsyncErrorHandler(event:AsyncErrorEvent):void { } private function onMetaData(data:Object):void { duration = data.duration; } private function onProgressHandler(event:Event):void { if (isPlay) { progressBar.controlBar.width=stream.time/this.duration*progressBar.width;//让进度条产生宽度变化 } if (progressBar.controlBar.width <= progressBar.width && progressBar.controlBar.width >= progressBar.width - 2) { stopVideo(); } } //播放和暂停处理 private function onPlaySoundHandler(event:MouseEvent):void { if (playBtn.currentLabel == "start") { if (isPlay == false) { isPlay = true; playBtn.gotoAndStop("pause"); resumeVideo(); } } else { if (isPlay) { isPlay = false; playBtn.gotoAndStop("start"); pauseVideo(); } } } private function onStopVideoHandler(event:MouseEvent):void { stopVideo(); } //全屏处理 private function onFullScreendHandler(event:MouseEvent):void { fullScreen(); } private function onStartDragBarHandler(event:MouseEvent):void { pauseVideo(); playBtn.gotoAndStop("pause"); progressBar.controlBar.width = progressBar.mouseX; event.updateAfterEvent(); position=progressBar.controlBar.width/progressBar.width*duration; progressBar.addEventListener(MouseEvent.MOUSE_MOVE,onMouseMoveHandler); stage.addEventListener(MouseEvent.MOUSE_UP,onMouseUPHandler); } private function onMouseMoveHandler(event:MouseEvent):void { pauseVideo(); progressBar.controlBar.width = progressBar.mouseX; position=progressBar.controlBar.width/progressBar.width*duration; event.updateAfterEvent(); } private function onMouseUPHandler(event:MouseEvent):void { if (progressBar.hasEventListener(MouseEvent.MOUSE_MOVE)) { progressBar.removeEventListener(MouseEvent.MOUSE_MOVE,onMouseMoveHandler); stream.seek(position); resumeVideo(); } if (volumeBar.hasEventListener(MouseEvent.MOUSE_MOVE)) { volumeBar.removeEventListener(MouseEvent.MOUSE_MOVE,onChangeVolumeHandler); } stage.removeEventListener(MouseEvent.MOUSE_UP,onMouseUPHandler); } //静音处理 private function onMuteSoundHandler(event:MouseEvent):void { if (volumeBtn.currentLabel == "start") { volumeBtn.gotoAndStop("stop"); setVolume(0); } else { volumeBtn.gotoAndStop("start"); setVolume(1); } } //拖动声音控制 private function onStartDragVolomeBarHandler(event:MouseEvent):void { volumeBar.controlBar.width = volumeBar.mouseX; var volume:Number = getPercent(); setVolume(volume); event.updateAfterEvent(); volumeBar.addEventListener(MouseEvent.MOUSE_MOVE,onChangeVolumeHandler); stage.addEventListener(MouseEvent.MOUSE_UP,onMouseUPHandler); } //修改声音 private function onChangeVolumeHandler(event:MouseEvent):void { volumeBar.controlBar.width = volumeBar.mouseX; var volume:Number = getPercent(); event.updateAfterEvent(); stage.addEventListener(MouseEvent.MOUSE_UP,onMouseUPHandler); } private function getPercent():Number { return volumeBar.controlBar.width / volumeBar.width; } //停止播放视频 private function stopVideo():void { playBtn.gotoAndStop("start"); position = 0; isPlay = false; video.clear(); stream.seek(0); stream.close(); progressBar.controlBar.width = 1; } //播放视频 private function playVideo(videoUrl:String):void { stream.play(videoUrl); } //暂停视频 private function pauseVideo():void { stream.pause(); isPlay = false; } //继续播放 private function resumeVideo():void { isPlay = true; if(stream.time==0) { stream.play(videoUrl); } else stream.resume(); } //设置音量 private function setVolume(volumes:Number):void { sound.volume=volumes; stream.soundTransform=sound; } //全屏模式 private function fullScreen():void { if (stage.displayState==StageDisplayState.NORMAL) { stage.displayState = StageDisplayState.FULL_SCREEN; } else if (stage.displayState ==StageDisplayState.FULL_SCREEN) { stage.displayState=StageDisplayState.NORMAL; } } } }

Flash 与课件制作:视频播放相关推荐

  1. 小学计算机动画制作,小学flash动画课件制作方法

    小学flash动画课件制作方法 flash动画可以制作多种多样的课件,而且简单又方便,下面是小编为大家推荐小学flash动画课件的内容,希望能够帮助到你,欢迎大家的阅读参考. 方法/步骤 1 上网搜索 ...

  2. Flash 与课件制作:加载图片

    Flash 与课件制作:加载图片 今天下午写了一下这个简单的东西,加载图片.今晚我们玩一下课件的制作,flash 制作课件是一个很实用的东西,能够制造很多动态的效果.当然要制作这些东西花费时间也不少. ...

  3. Flash 与课件制作:Mp3播放

    今晚随手写一个简单Mp3播放,功能非常简单,没有用到很完善的类库,单独写在一个类没有对其进行分开.可以当课件使用.制作这个主要目的就是播放一首Mp3.播放Mp3已经不是什么新鲜的事情.今天只是结合到一 ...

  4. flash制作文字笔顺_flash动画课件制作有什么优点

    Flash已经逐渐成为交互性矢量技术的标准,是未来网页制作和网络课件制作的主流.Flash动画课件制作相比传统方式.PPT课件,在教学中发挥着重要的价值,本篇文章,拥有多年制作经验的艺虎动画,总结分享 ...

  5. flash课件制作成品_原来,网络课件的表现形式也有“轮回说”

    文 | 问鼎云学习(ID:wdxuexi)原创转载请注明出处 常看时尚杂志的小伙伴,应该都知道有这样一句话: 时尚是一个轮回. 现在流行的阔腿裤,不成想是妈妈年轻时候穿过的. 上学时妈妈逼你的穿校服, ...

  6. E-learning课件制作总结

    1.串流大师,古老的课件制作方式,IE效果最佳,目前跨平台跨浏览器的大背景下,可能被抛弃.但是支持单视频.三分屏等. 2.Lecture韩国公司开发,基于ppt可以脱离ppt,但是对于移动端效果一般. ...

  7. h5课件制作_一个好的h5交互课件该怎么制作

    什么才算是好的课件呢.我认为评价课件好坏的首要标准应该是课件知识点是否涵盖完全,能否完成教学的需要.其次才是课件是否有趣,采用何种表现形式.无论是过去的板书.投影,到前几年的ppt.flash动态课件 ...

  8. 多媒体计算机辅助教学与课件制作,清华大学出版社-图书详情-《计算机辅助教学多媒体课件设计制作与应用》...

    随着计算机的普及和教育教学手段的现代化,为了提高教学水平.教学质量和教学效率,培养学生的综合素质,广大教师和学生迫切需要掌握多媒体课件制作技术,应用多媒体课件辅助教学已经成为当今教师必须具备的一种能力 ...

  9. 计算机课件比赛总结,课件制作比赛活动总结

    [www.gz85.com - 投篮比赛活动工作总结] 课件制作比赛,是对计算机多媒体等辅助手段的一次检阅,也有力地促进了制作多媒体课件技艺的提高.下面是小编为您整理的"课件制作比赛活动总结 ...

最新文章

  1. Python在计算内存时值得注意的几个问题
  2. 常考数据结构与算法:子数组中的最大累加和问题
  3. OOD面向对象设计浅谈
  4. JAVA world转图片,将Kinect深度图像转换为真实世界坐标
  5. [vue] 你知道vue的模板语法用的是哪个web模板引擎的吗?说说你对这模板引擎的理解
  6. cs224 -Lecture 1:Introduction and Word Vectors
  7. Android Studio 第六十三期 - Android框架 -RecycleView所有用法
  8. mysql常用客户端工具
  9. 惠普怎样启动计算机上的无线功能,如何打开hp无线网卡?如何打开惠普笔记本电脑无线网卡...
  10. python sklearn包中的主成分分析_sklearn主成分分析 NBA球队数据PCA降维可视化
  11. 20200725 PAT甲级 7-2 The Judger (25分)
  12. iOS 清理缓存简介
  13. [转载]Html 特殊符号 让版权符号更美观_几何途行_新浪博客
  14. windows核心编程之 C/C++运行库注意事项
  15. 双光耦开关电源电路图_开关电源中的光耦典型电路设计分析
  16. mysql virt虚拟内存_Java 进程占用VIRT虚拟内存超高的问题
  17. 入选2022年BookAuthority 的最佳量子计算新书:《与量子比特共舞》
  18. 容器化与无状态微服务等
  19. About 9.18 This Week
  20. 仿网易新闻顶部菜单html,iOS仿网易新闻滚动导航条效果

热门文章

  1. 只用mysql实现银行转账_基于mysql数据库银行转账功能实现
  2. java 串讲_Java知识串讲
  3. 如何站在成功人士的肩上成为一个真正的巨人————《赛马娘 Pretty Derby》评测
  4. 取消confirm和自动确认
  5. 云原生k8s的盘古开天辟地
  6. win10启用长路径
  7. win7总是显示计算机内存不足怎么办,虚拟内存不足,教您电脑提示虚拟内存不足怎么办...
  8. smm整合pom依赖
  9. 四层高速dsp开发板制作7——绘制等长线
  10. win8\win server 2012添加【中文--美式键盘】