·您当前的位置:主页 > 技术教程 > AS2与AS3技术 >

[AS3]用as3代码写一个自己的简易视频播放器附源代码

时间:2017-04-26 18:07酷播
[AS3]用as3代码写一个自己的简易视频播放器附源代码

[AS3]用as3代码写一个自己的视频播放器附源代码

  1. //创建一个 NetConnection 对象  
  2. var nc:NetConnection=new NetConnection();  
  3. /*如果连接到没有使用服务器的FLV 文件,则通过向 connect() 方法传递值   
  4. null,来播放流式 FLV 文件*/  
  5. nc.connect(null);  
  6. /*创建一个 NetStream 对象(该对象将 NetConnection 对象作为参数)并  
  7. 指定要加载的 FLV 文件*/  
  8. var ns:NetStream=new NetStream(nc);  
  9. ns.play("http://www.helpexamples.com/flash/video/cuepoints.flv");  
  10. /*使用 Video 类的 attachNetStream() 方法附加以前创建的 NetStream   
  11. 对象(视频实例名为vid)*/  
  12. vid.attachNetStream(ns);  
  13. //音量初始值  
  14. var yl:Number=0.5;  
  15. var nsyl:SoundTransform =new SoundTransform();  
  16. //nsyl.volume=yl  
  17. //播放进度与加载进度影片缩放为0  
  18. bfjd_mc.scaleX=jzjd_mc.scaleX=0;  
  19. //申明变量播放与下载百分比以及总时间(秒)的初始值为0  
  20. var bfbfb:int=0;  
  21. var xzbfb:int=0;  
  22. var _duration:Number=0;  
  23. //指定在其上调用回调方法的对象  
  24. var _client:Object=new Object();  
  25. _client.onMetaData=onMetaData;  
  26. ns.client=_client;  
  27. //按钮可见性与添加侦听事件  
  28. play_btn.visible=false;  
  29. pause_btn.visible=true;  
  30. pause_btn.addEventListener(MouseEvent.CLICK, zt);  
  31. play_btn.addEventListener(MouseEvent.CLICK, bf);  
  32. //忽略错误  
  33. ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);  
  34. function asyncErrorHandler(event:AsyncErrorEvent):void {  
  35. }  
  36. //暂停  
  37. function zt(event:MouseEvent):void {  
  38. play_btn.visible=true;  
  39. pause_btn.visible=false;  
  40. //视频暂停  
  41. ns.pause();  
  42. }  
  43. //播放  
  44. function bf(event:MouseEvent):void {  
  45. play_btn.visible=false;  
  46. pause_btn.visible=true;  
  47. //恢复回放暂停的视频流  
  48. ns.resume();  
  49. addEventListener(Event.ENTER_FRAME,gx);  
  50. }  
  51. //接收在正播放的 FLV 文件中嵌入的描述性信息时调度  
  52. function onMetaData(data:Object):void {  
  53. _duration=data.duration;  
  54. }  
  55. //申明变量播放信号  
  56. var bfxh:String;  
  57. //侦听视频流的开始和末尾  
  58. ns.addEventListener(NetStatusEvent.NET_STATUS, statusHandler);  
  59. function statusHandler(event:NetStatusEvent):void {  
  60. bfxh=event.info.code;  
  61. }  
  62. //不断更新进度与文本的显示  
  63. addEventListener(Event.ENTER_FRAME,gx);  
  64. function gx(event:Event):void {  
  65. if (ns.bytesLoaded>0) {  
  66. //加载进度  
  67. xzbfb=ns.bytesLoaded/ns.bytesTotal*100;  
  68. jzjd_mc.scaleX=xzbfb/100;  
  69. }  
  70. if (_duration>0 && ns.time>0) {  
  71. //播放进度  
  72. bfbfb=ns.time/_duration*100;  
  73. bfjd_mc.scaleX=bfbfb/100;  
  74. }  
  75. if (bfxh=="NetStream.Play.Stop") {  
  76. //播放完毕时的设置  
  77. bfbfb=0;  
  78. bfjd_mc.scaleX=0;  
  79. ns.pause();  
  80. ns.seek(0);//将播放头置于视频开始处  
  81. play_btn.visible=true;  
  82. pause_btn.visible=false;  
  83. }  
  84. //文本显示内容  
  85. bftxt.text=Math.round(ns.time/60)+":"+Math.round(ns.time%60);  
  86. zcdtxt.text=Math.round(_duration/60)+":"+Math.round(_duration%60);  
  87. //音量控制  
  88. yl=(ylhk_mc.x-345)/50;  
  89. ylylt_mc.scaleX=yl;  
  90. nsyl.volume =yl;  
  91. ns.soundTransform =nsyl;  
  92. }  
  93. //音量滑块拖动控制  
  94. var fw:Rectangle=new Rectangle(345,328,50,0);//拖动范围  
  95. ylhk_mc.addEventListener(MouseEvent.MOUSE_DOWN,ylhkax);  
  96. ylhk_mc.addEventListener(MouseEvent.MOUSE_UP,ylhksk);  
  97. stage.addEventListener(MouseEvent.MOUSE_UP,ylhksk);  
  98. function ylhkax(event:MouseEvent):void {  
  99. ylhk_mc.startDrag(false,fw);  
  100. }  
  101. function ylhksk(event:MouseEvent):void {  
  102. ylhk_mc.stopDrag();  

[AS3]用as3代码写一个自己的简易视频播放器附源代码

热门文章推荐

请稍候...