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

[FMS]AS3.0基于FMS写的录音机代码示例(2)

时间:2012-09-20 17:10虫子的窝
核心播放 packagecom.DNight { importadobe.utils.CustomActions; importcom.DNight.events.PlayEvent; importflash.events.EventDispatcher; importflash.media.Video; importflash.net.NetConnection; importflas

核心播放

  1. package com.DNight   
  2. {  
  3. import adobe.utils.CustomActions;  
  4. import com.DNight.events.PlayEvent;  
  5. import flash.events.EventDispatcher;  
  6. import flash.media.Video;  
  7. import flash.net.NetConnection;  
  8. import flash.net.NetStream;  
  9. import flash.events.NetStatusEvent;  
  10. import flash.media.SoundMixer  
  11. /**  
  12. * ...  
  13. * @author DN  
  14. */  
  15. public class Player extends EventDispatcher  
  16. {  
  17. private var _path:String  
  18. private var _video:Video;  
  19. private var _netConnection:NetConnection;  
  20. private var _netStream:NetStream;  
  21. private var _duration:Number;  
  22. private var _time:Number = 0;  
  23.  
  24. public function get duration() {  
  25. return _duration  
  26. }  
  27. public function get stream() {  
  28. return _netStream  
  29. }  
  30. public function Player(newPath)   
  31. {  
  32. _path = newPath;  
  33. _video = new Video();  
  34. _netConnection = new NetConnection();  
  35. _netConnection.connect(Recorder.FMSSTR);  
  36. _netConnection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandle);  
  37. }  
  38. private function netStatusHandle(eve:NetStatusEvent) {  
  39. switch(eve.info.code) {  
  40. case "NetConnection.Connect.Success":  
  41. _netStream = new NetStream(_netConnection);  
  42. _netStream.bufferTime = 3;  
  43. var client:Object = new Object();  
  44. client.onMetaData = onMetaData;  
  45. client.onPlayStatus = onPlayStatus;  
  46. _netStream.client = client;  
  47. break  
  48. }  
  49. }  
  50. private function onMetaData(data:Object) {  
  51. _duration = data.duration;  
  52. var event:PlayEvent = new PlayEvent(PlayEvent.GET_DUREATON);  
  53. dispatchEvent(event);  
  54. //极酷cuplayer提示:trace("音频长度"+_duration);  
  55. }  
  56. private function onPlayStatus(data:Object) {  
  57. switch(data.code) {  
  58. case "NetStream.Play.Complete":  
  59. var event:PlayEvent = new PlayEvent(PlayEvent.PLAY_END);  
  60. dispatchEvent(event);  
  61. _time = 0;  
  62. break  
  63. }  
  64. }  
  65. public function play() {  
  66. if (_time == 0) {  
  67. _netStream.play(_path);  
  68. }else {  
  69. _netStream.resume();  
  70. }  
  71. }  
  72. public function pause() {  
  73. _time = _netStream.time;  
  74. _netStream.pause();  
  75. }  
  76. public function stop() {  
  77. trace("停止音乐");  
  78. _netStream.close();  
  79. SoundMixer.stopAll();  
  80. }  
  81. }  

热门文章推荐

请稍候...

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

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