2011-06-09 5 views
0

J'ai trouvé un code sur ce site pour le streaming shoutcast dans Flash AS3. Voici le code:shoutcast streaming Flash AS3?

package { 
    import flash.display.Sprite; 
    import flash.events.NetStatusEvent; 
    import flash.events.SecurityErrorEvent; 
    import flash.media.Video; 
    import flash.net.NetConnection; 
    import flash.net.NetStream; 
    import flash.events.Event; 

    public class NetConnectionExample extends Sprite { 
     private var streamURL:String = "https://myHost:myPort"; 
     private var connection:NetConnection; 
     private var stream:NetStream; 

     public function NetConnectionExample() { 
      connection = new NetConnection(); 
      connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); 
      connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); 
      connection.connect(null); 
     } 

     private function netStatusHandler(event:NetStatusEvent):void { 
      switch (event.info.code) { 
       case "NetConnection.Connect.Success": 
        connectStream(); 
        break; 
       case "NetStream.Play.StreamNotFound": 
        trace("Stream not found: " + streamURL); 
        break; 
      } 
     } 

     private function securityErrorHandler(event:SecurityErrorEvent):void { 
      trace("securityErrorHandler: " + event); 
     } 

     private function connectStream():void { 
      stream = new NetStream(connection); 
      stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); 
      stream.client = new CustomClient(); 
      stream.play(streamURL); 
     } 
    } 
} 


class CustomClient { 
    public function onMetaData(info:Object):void { 
     trace("metadata: duration=" + info.duration + " width=" + info.width + " height=" + info.height + " framerate=" + info.framerate); 
    } 
    public function onCuePoint(info:Object):void { 
     trace("cuepoint: time=" + info.time + " name=" + info.name + " type=" + info.type); 
    } 
} 

mais je reçois cette erreur lorsque je compile le fichier SWF:

erreur ouverture URL https: // Myhost: myPort ' SecurityError: Erreur # 2000: Pas de sécurité actif le contexte.

quelqu'un peut s'il vous plaît dites-moi comment faire cela correctement? J'ai cherché deux jours maintenant sans succès !!

Merci

Répondre

2

L'URL n'existe pas simplement, parce que juste un échantillon, mais il y a aussi quelques autres problèmes avec ce code. Par exemple: connection.connect (null), il ne se connectera à nulle part, donc l'instance netconnection ne distribuera pas du tout l'événement netstatus, c'est pourquoi la méthode connectStream ne sera pas exécutée. Si vous voulez lire un flux de shoutcast, utilisez ce code:

var soundOBJ : Sound = new Sound(); 
    soundOBJ.load(new URLRequest("http://78.159.104.147:80/")); 
    soundOBJ.play(); 

Choisissez un flux d'ici: http://callear.org/radio-script/demo-flash/xxqpupruq/pickstream.php?id=1377200&title=TechnoBase.FM+-+24h+Techno%2C+Dance%2C+Trance%2C+House+and+More+-+128k+MP3+-+a+SHOUTcast.com+member+station

(remplacez simplement l'URL dans le constructeur de la URLRequest)

Cheers

Tamas Gronas

+0

Cette méthode est sujette à de graves fuites de mémoire. Essayez ceci sur un périphérique à mémoire faible et plantez-le en quelques minutes. Ou, laissez-le tourner pendant quelques heures sur un flux à haut débit, et regardez-le manger toute la RAM sur votre PC. – Brad