Quem nunca viu uma radio Web e quis ter uma? Eu tive a minha rádio FM, era ruim, confesso, mais era a minha rádio FM.
Era meu orgulho, minha paixão. Então agora resolvi postar este exemplo.
Neste exemplo utilizo a classe Sound para tocar o áudio. Ele recebe o objeto URLRequest que é responsável pelo download do mp3.
A classe SoundTransform é responsável pelo volume do canal. Se você for implementar apenas a camada de áudio sem volume, não é necessário implementar a classe SoundTransform e e a SoundChannel.
Arquivo main.mxml<?xml version="1.0"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" backgroundColor="#f6f6f6" backgroundGradientColors="[#f6f6f6, #bbbbbb]" creationComplete="play()" viewSourceURL="075/index.html"> <!-- Texto Superior --> <mx:Label x="10" y="10" fontSize="20" fontWeight="bold" text="Manipulando Áudio no Flex" /> <!-- Barra Horizontal --> <mx:HRule x="10" y="49" width="690" /> <mx:Script> <![CDATA[ private var _transforma:SoundTransform = new SoundTransform(); private var _canal:SoundChannel; private var _som:Sound; private var _request:URLRequest = null; public function play():void { btPlay.enabled = false; btStop.enabled = true; _request = new URLRequest("/code/075/So-What.mp3"); _som = new Sound(_request); _canal = _som.play(0,0); } private function Stop():void { btPlay.enabled = true; btStop.enabled = false; _canal.stop(); } private function volume():void { if(_canal != null) { _transforma.volume = vol.value; _canal.soundTransform = _transforma; } } ]]> </mx:Script> <mx:HSlider id="vol" x="196" y="63" minimum="0" maximum="1" snapInterval="0.01" value="1" change="volume()" liveDragging="true"/> <mx:Button id="btPlay" x="10" y="59" label="Play" click="play()"/> <mx:Button id="btStop" x="69" y="59" label="Stop" click="Stop()"/> <mx:Label x="150" y="63" text="Volume"/> </mx:Application>
Veja o exemplo.
Divirtam-se com o fonte.