·您当前的位置:首页 > 技术教程 > 播放器教程 >

[AS3]as3写的音乐播放器源代码实例(Sound类实例)

时间:2013-03-24 22:49CuPlayer.com
[AS3]as3写的音乐播放器源代码实例(Sound类实例),as3播放器,as3音乐播放器,音乐播放器

 

  1. 1.控制库里的声音 
  2. import flash.media.SoundChannel; 
  3. import flash.media.Sound; 
  4. var mysound:videoS = new videoS(); 
  5. var trans:SoundTransform = new SoundTransform(0.6,-1); 
  6. var SSChannel:SoundChannel = new SoundChannel() ; 
  7. //可以设置play()的looping参数; 
  8. SSChannel = mysound.play(0,int.MAX_VALUE);//它是int类型的最大值,它等于2,147,483,647,循环这个次数至少可以停留70年。 
  9.  
  10. //停止声音 
  11. SSChannel.stop(); 
  1. 2.监听控制 
  2.  
  3. /* 
  4. As3Sound.as 
  5. */ 
  6. package { 
  7. import flash.display.Sprite; 
  8. import flash.events.*; 
  9. import flash.media.Sound; 
  10. import flash.media.SoundChannel; 
  11. import flash.net.URLRequest; 
  12. import flash.utils.Timer; 
  13. import flash.text.TextField; 
  14. import flash.text.TextFieldAutoSize; 
  15. import flash.filters.DropShadowFilter; 
  16. public class As3Sound extends Sprite { 
  17. private var url:String = "http://sxl001.xfyun.com/music/lib/myRussia.mp3"
  18. private var soundFactory:Sound; 
  19. private var channel:SoundChannel; 
  20. private var positionTimer:Timer; 
  21. private var play_btn:Sprite; 
  22. private var stop_btn:Sprite; 
  23. private var d_filtersropShadowFilter=new DropShadowFilter(5,45,0x000000,80,8,8); 
  24. //用于记录音乐现在是否为暂停状态 
  25. private var bSoundStop:Boolean = false
  26. public function As3Sound() { 
  27. var sxl_txt:TextField = new TextField(); 
  28. sxl_txt.text="CS4中如何控制声音的播放或停止的"
  29. sxl_txt.autoSize=TextFieldAutoSize.LEFT; 
  30. sxl_txt.x=stage.stageWidth/2-sxl_txt.width/2; 
  31. sxl_txt.y=20
  32. addChild(sxl_txt); 
  33. var mp3_request:URLRequest = new URLRequest(url); 
  34. soundFactory = new Sound(); 
  35. //成功加载数据后 
  36. soundFactory.addEventListener(Event.COMPLETE, completeHandler); 
  37. //在存在可用于 MP3 声音的 ID3 数据时 
  38. soundFactory.addEventListener(Event.ID3, id3Handler); 
  39. //加载音乐错误时 
  40. soundFactory.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); 
  41. //音乐加载中... 
  42. soundFactory.addEventListener(ProgressEvent.PROGRESS, progressHandler); 
  43. soundFactory.load(mp3_request); 
  44. channel = soundFactory.play(); 
  45. //音乐播放完成 
  46. channel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler); 
  47. //用Timer监听音乐的播放进度 
  48. positionTimer = new Timer(1000); 
  49. positionTimer.addEventListener(TimerEvent.TIMER, positionTimerHandler); 
  50. positionTimer.start(); 
  51. //创建一个按钮,用于播放音乐 
  52. play_btn = new Sprite(); 
  53. play_btn.graphics.beginFill(0xFFCC32); 
  54. play_btn.graphics.drawRoundRect(0, 0, 70, 18, 10, 10); 
  55. play_btn.graphics.endFill(); 
  56. var play_txt:TextField = new TextField(); 
  57. play_txt.text = "播放"
  58. play_txt.x=18
  59. play_btn.x=50
  60. play_btn.y=100
  61. play_txt.selectable = false
  62. play_btn.addChild(play_txt); 
  63. play_btn.filters=[d_filters]; 
  64. play_btn.addEventListener(MouseEvent.CLICK, soundPlay); 
  65. addChild(play_btn); 
  66. //创建一个按钮,用于停止音乐 
  67. stop_btn = new Sprite(); 
  68. stop_btn.graphics.beginFill(0xFFCC32); 
  69. stop_btn.graphics.drawRoundRect(0, 0, 70, 18, 10, 10); 
  70. stop_btn.graphics.endFill(); 
  71. stop_btn.x=130
  72. stop_btn.y=100
  73. var stop_txt:TextField = new TextField(); 
  74. stop_txt.x=18
  75. stop_txt.text = "暂停"
  76. stop_txt.selectable = false
  77. stop_btn.addChild(stop_txt); 
  78. stop_btn.filters=[d_filters]; 
  79. stop_btn.addEventListener(MouseEvent.CLICK, soundStop); 
  80. addChild(stop_btn); 
  81.  
  82. //监听音乐的播放进度 
  83. private function positionTimerHandler(event:TimerEvent):void { 
  84. var ybf:int = channel.position.toFixed(0); 
  85. var zcd:int = soundFactory.length; 
  86. var bfs:int = Math.floor(ybf/zcd*100); 
  87. //trace("音乐总长度:"+zcd, "音乐已播放:"+ybf, "播放进度为:"+bfs+"%"); 
  88. //加载音乐完成时 
  89. private function completeHandler(event:Event):void { 
  90. //trace("加载音乐完成: " + event); 
  91. //在存在可用于MP3声音的ID3数据时 
  92. private function id3Handler(event:Event):void { 
  93. //trace("音乐的ID3信息如下:"); 
  94. for (var s in soundFactory.id3) { 
  95. //trace("\t", s, ":", soundFactory.id3[s]); 
  96. //trace("关于ID3信息介绍,请参见Sound类-->属性-->id3"); 
  97. //CuPlayer.com提示:加载音乐错误时 
  98. private function ioErrorHandler(event:Event):void { 
  99. //trace("加载音乐错误,错误信息如下:" + event); 
  100. positionTimer.stop(); 
  101. //加载音乐时 
  102. private function progressHandler(eventrogressEvent):void { 
  103. var yjz:int = event.bytesLoaded; 
  104. var zcd:int = event.bytesTotal; 
  105. var bfs:int = Math.floor(yjz/zcd*100); 
  106. //trace("音乐总长度:"+zcd,"已加载: "+yjz, "加载进度为:"+bfs+"%"); 
  107. //CuPlayer.com提示:音乐播放完成 
  108. private function soundCompleteHandler(event:Event):void { 
  109. //trace("音乐播放完成: " + event); 
  110. positionTimer.stop(); 
  111. //CuPlayer.com提示:点击播放按钮事件 
  112. private function soundPlay(event:MouseEvent):void { 
  113. if (bSoundStop) { 
  114. bSoundStop = false
  115. channel = soundFactory.play(channel.position.toFixed(0)); 
  116. //CuPlayer.com提示:点击停止按钮事件 
  117. private function soundStop(event:MouseEvent):void { 
  118. if (!bSoundStop) { 
  119. bSoundStop = true
  120. channel.stop(); 

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器