Se esta querendo aprender ou iniciar novos projetos em Flex, clique aqui

Um dos melhores sistema para rádio On-line é o SHOUTcast. Estou estudando ele bastante agora, descobri coisas muito bacana dele com o Flex.

Então ao invés de só usar o Windows Media Player, podes também disponibilizar um player em Flash para seus ouvintes ouvirem diretamente da Web se a necessidade deste plug-in da M$.

Veja abaixo como é simples a sua utilização no Flex, mostrado em um player.

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
                layout="absolute"
                creationComplete="soundPlay()"
                width="174"
                height="86">
  <mx:Script>
    <![CDATA[
      private var sound:Sound
      private var channel:SoundChannel

      private function soundPlay():void
      {
        // Ativa o Pause
        btPause.enabled=true
        // Desativa o Play
        btPlay.enabled=false
        Security.allowDomain("http://seuServidorSHOUTcast.com/;stream.nsv");
        // Nova instancia da classe Sound
        sound=new Sound()
        sound.load(new URLRequest("http://seuServidorSHOUTcast.com/;stream.nsv"))
        // O play() é reaizado sobre um canal, pois é no canal que
        // podemos alterar o volume
        channel=sound.play()
      }

      private function soundPause():void
      {
        // Desativa o botão Pause
        btPause.enabled=false
        // Ativa o botão Play
        btPlay.enabled=true
        sound.close()
      }

      private function setVolume():void
      {
        // divide por 10, pois o Slider vái até 10 e
        // a propriedade volume deve receber no máximo 1
        channel.soundTransform.volume=volume.value / 10
      }
    ]]>
  </mx:Script>
  <mx:Button x="10"
           y="10"
           label="Play &gt;"
           id="btPlay"/>
  <mx:Button y="10"
             label="Pause ||"
             x="90"
             id="btPause"
             enabled="false"/>
  <mx:HSlider labels="Volume"
              minimum="0"
              maximum="10"
              value="6"
              snapInterval="0.1"
              allowTrackClick="true"
              liveDragging="true"
              right="10"
              left="10"
              y="40"
              id="volume"
              change="setVolume()"/>
</mx:Application>

O Código esta bem comentado e se precisar de mais detalhes, entre em contato.

Gostou? Não esqueça de curtir!

Ou compartilhe o link com seus amigos

4 comentários

Deixe uma resposta

  1. Quando vocês clicam em pause, para parar a transmissão o áudio ainda fica tocando por alguns segundos. Não é instântaneo. No momento que eu clico em pause, demora um pouco e só depois que o áudio para.

    Isso acontece com vocês?

     
  2. A transmissão para o shoutcast server na sua maioria é com shoutcast dsp plugin, é algo instalado. Alguém já viu alguma solução em flex, via web, que transmita para o shoutcast server? Ou icecast server?

     
  3. Transmitir direto é complicado pela falta de plug-in. Se quiser fazer isso, a maneira m,ais simples é via Red5, aonde faça reencoder do streaming de áudio e publique no ShoutCast. Ou utilize o Red5 em sua totalidade para publicar seu áudio.

     
  4. Muito show esse esquema de ShoutCast, montei um player alguns dias atras para um cliente em flash que usava ShoutCast, funcionou perfeitamente. Agora uma dica que eu deixo e que eu passei muita dificuldade para achar o erro é na hora de por a URL do servidor ShoutCast. Tem que por o ;stream.nsv no final, quando você rodar dentro do Flex/Flash ate vai funcionar sem o ;stream.nsv, mas quando você compilar e for usar na web com html aee o flash não vai reconhecer a URL como um streaming, ele vai reconhecer como um caminho normal como se fosse uma URL de um site.

    Fica aee a dica galera

    Abraços