[Flex]源代码实例mp3播放器(2)
//方案二 ? xml version = 1.0 encoding = utf-8 ? mx:Application xmlns:mx = http://www.adobe.com/2006/mxml layout = absolute initialize = OnClick() mx:Script ![CDATA[ importflash.media.*; importmx.even
- // 方案二
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="OnClick()">
- <mx:Script>
- <![CDATA[
- import flash.media.*;
- import mx.events.SliderEvent ;
- private var _type:int=2;
- private var _sound:Sound;
- private var _channel:SoundChannel;
- private var posNum:Number=0;
- private var _spectrumGraph:BitmapData = new BitmapData(256, 60,
- true,
- 0x000000aa);
- //暂停
- private function OnPauseClick():void{
- posNum=_channel.position;
- _channel.stop();
- }
- //停止
- private function OnStopClick():void{
- posNum=0;
- _channel.stop();
- }
- private function OnClick():void{
- hsldLeft.value=1;
- //var spe:Spectrum=new Spectrum();
- // Create bitmap for spectrum display
- // pnlFrame.addEventListener(Event.ENTER_FRAME, onEnterFrame);
- _sound = new Sound(new URLRequest("assets/song.mp3"));
- _channel = _sound.play( posNum );
- }
- //输出图形
- public function onEnterFrame():void
- {
- // Create the byte array and fill it with data
- var spectrum:ByteArray = new ByteArray( );
- SoundMixer.computeSpectrum(spectrum);
- // Clear the bitmap
- _spectrumGraph.fillRect(_spectrumGraph.rect,
- 0x00000000);
- // Create the left channel visualization
- var i:int;
- if(2==_type){
- for(i=0;i<256;i++) {
- _spectrumGraph.setPixel32(i,
- 35 + spectrum.readFloat( ) * 20,
- 0xffffffff);
- }
- }
- if(1==_type){
- for(i=0;i<64;i++) {
- _spectrumGraph.fillRect(new Rectangle(4*i,50-spectrum.readFloat( ) * 50 ,4,spectrum.readFloat( ) * 50 ),0xffffffff);
- }
- }
- cns.graphics.beginBitmapFill(_spectrumGraph);
- cns.graphics.drawRect(0,0,256,60);
- cns.graphics.endFill();
- var curPos:Number=_channel.position;
- var curLen:Number=_sound.length;
- cns.graphics.beginFill(0x0);
- cns.graphics.drawRect(0,80,256,10);
- cns.graphics.endFill();
- cns.graphics.beginFill(0xa0);
- cns.graphics.drawRect(0,80,256*curPos/curLen,10);
- cns.graphics.endFill();
- }
- //改变输出图形的
- private function OnCnsClick():void{
- _type--;
- if (0>=_type){
- _type=2;
- }
- }
- //改变声音大小
- private function OnChangeVolumn( ):void{
- var transform:SoundTransform = _channel.soundTransform ;
- transform.volume =hsldLeft.value;
- _channel.soundTransform = transform;
- trace("_channel.leftPeak="+_channel.leftPeak*100 +" "+ "_channel.rightPeak="+_channel.rightPeak*100
- +"_channel.soundTransform.volume"+_channel.soundTransform.volume*100);
- }
- ]]>
- </mx:Script>
- <mx:Canvas x="0" y="0" width="256" height="84" id="cns" enterFrame="onEnterFrame()" click="OnCnsClick()">
- </mx:Canvas>
- <mx:Button x="0" y="92" label="start" click="OnClick()"/>
- <mx:Button x="196" y="92" label="stop" click="OnStopClick()"/>
- <mx:Button x="96" y="92" label="pause" click="OnPauseClick()"/>
- <mx:HSlider x="10" y="122" height="12" width="237" minimum="0" maximum="2" id="hsldLeft" change="OnChangeVolumn()" liveDragging="true"/>
- </mx:Application>
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例
请稍候...