【问题标题】:shoutcast streaming Flash AS3?广播流媒体 Flash AS3?
【发布时间】:2011-06-09 11:31:40
【问题描述】:

我在此站点上找到了一个代码,用于在 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:没有活动的安全上下文。

谁能告诉我如何正确地做到这一点?找了两天没用!!

谢谢

【问题讨论】:

    标签: flash actionscript-3 shoutcast


    【解决方案1】:

    网址根本不存在,因为这只是一个示例,但此代码还存在一些其他问题。例如:connection.connect(null),它不会连接到任何地方,所以netconnection实例根本不会调度netstatus事件,这就是connectStream方法不会被执行的原因。 如果您想从直播中播放流,请使用以下代码:

        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

    (只需替换URLRequest的构造函数中的url)

    干杯

    塔马斯·格罗纳斯

    【讨论】:

    • 此方法存在严重的内存泄漏。在低内存设备上尝试此操作并在几分钟内使其崩溃。或者,让它在高比特率流上运行几个小时,然后看着它吃掉你 PC 上的所有 RAM。
    猜你喜欢
    • 2012-07-21
    • 2011-11-08
    • 2014-11-03
    • 2021-08-26
    • 1970-01-01
    • 2011-06-30
    • 2012-11-02
    • 2011-10-20
    • 2012-11-10
    相关资源
    最近更新 更多