shoutcast потоковой передачи Flash AS3? - PullRequest
0 голосов
/ 09 июня 2011

Я нашел код на этом сайте для потоковой передачи shoutcast во 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);
    }
}

однако я получаю эту ошибку при компиляции SWF:

Ошибка при открытии URL 'https://myHost:myPort' SecurityError: Ошибка № 2000: нет активного контекста безопасности.

Может кто-нибудь сказать, пожалуйста, как это сделать правильно? Я искал два дня безрезультатно !!

Спасибо

1 Ответ

2 голосов
/ 09 июня 2011

URL просто не существует, потому что это всего лишь пример, но есть и другие проблемы с этим кодом.Например: connection.connect (null), он никуда не подключится, поэтому экземпляр netconnection вообще не будет отправлять событие netstatus, поэтому метод connectStream не будет выполнен.Если вы хотите воспроизвести поток из shoutcast, используйте этот код:

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

Выберите поток здесь: 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

(просто замените URL в конструкторе URLRequest)

Приветствия

Тамас Гронас

...