Manipulando Áudio no Flex

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.

Fique por dentro de nossas novidades, ideias e atualizações