1

我正在构建一个带有 Strobe Media Playback 的应用程序,但我无法播放 RTMP 流。

这里奇怪的是,我可以在 JWPlayer 上播放流,甚至可以在带有经典 NetStream 和 NetConnection 代码的简单 Flash 视频播放器中播放。

http://www.longtailvideo.com/jw-player/wizard/

这是流:rtmp://fl.world-television.com/streamstudio/vod/flv:endesa/20130422/video_full_es_v2.flv

我不知道是否需要通过 OSMF 参数设置任何特殊配置。

这就是我在一个简单的 Flash CS 应用程序中播放视频的方式。

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 VideoTest extends Sprite {
        private var videoURL:String = "rtmp://fl.world-television.com/streamstudio/vod/flv:endesa/20130422/video_full_es_v2.flv";
        private var connection:NetConnection;
        private var stream:NetStream;

        public function VideoTest()
        {
            initialize();
        }

        private function initialize():void
        {
            connection = new NetConnection();
            connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
            connection.connect("rtmp://fl.world-television.com/streamstudio/vod/" );
        }


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

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


        private function connectStream():void
        {
            stream = new NetStream(connection);
            stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            var video:Video = new Video();
            video.attachNetStream(stream);
            stream.play("endesa/20130422/video_full_es_v2");
            addChild(video);
        }
    }
}

我真的认为这里的问题是 OSMF 它没有正确分割 URL,它正在尝试连接 (NetConnection) 或尝试播放 (NetStream) 错误的字符串。

编辑:

解决了在 URL 中删除“/vod”的问题。

你可以在这里试试:

http://osmf.org/dev/2.0gm/debug.html?wmode=direct&width=470&height=320&src=rtmp%3A%2F%2Ffl.world-television.com%2Fstreamstudio%2Fendesa%2F20130422%2Fvideo_full_es_v2

4

0 回答 0