将YouTube视频播放器嵌入Android移动应用程序?

时间:2011-04-20 15:27:53

标签: android flex mobile air youtube

有没有办法将YouTube视频/视频播放器嵌入到Android Flex AIR Mobile应用程序中?

我尝试使用SWFLoader(...),但由于其MX库类仅适用于桌面运行时环境,但在调试应用程序时无法在实际的Android设备上运行。有什么想法吗?

也许可以将包含YouTube视频的HTML嵌入某些Flex媒体容器(如TextArea)或其他内容?

2 个答案:

答案 0 :(得分:1)

你去,先生:

             

        protected var loader:Loader = new Loader();
        [Bindable]
        protected var player:Object;

        protected function view1_creationCompleteHandler(event:FlexEvent):void
        {
            trace("init")
            Security.loadPolicyFile("http://www.youtube.com/crossdomain.xml");
            loader.contentLoaderInfo.addEventListener(Event.INIT, onLoaderInit);

            loader.load(new URLRequest("http://www.youtube.com/apiplayer?version=3&enablejsapi=1"));
        }

        protected function onLoaderInit(event:Event):void {
            trace("onLoader")
            loader.content.addEventListener("onReady", onPlayerReady);
            loader.content.addEventListener("onError", onPlayerError);
            loader.content.addEventListener("onStateChange", onPlayerStateChange);
            loader.content.addEventListener("onPlaybackQualityChange", 
                onVideoPlaybackQualityChange);
        }

        public function loadVideo(id:String):void{
            player.cueVideoByUrl(id);
            trace("playing",id)
            player.playVideo();
        }

        protected function onPlayerReady(event:Event):void {
            player = loader.content;
            //player.setSize(240, 210);

            swfLoader.autoLoad = true;
            swfLoader.scaleContent = true;
            swfLoader.maintainAspectRatio = true;
            swfLoader.load(player);
            trace("theLo" ,String(data))
            loadVideo(String(data))// kell az 1-es feladathoz itt
        }

        protected function swfLoader_securityErrorHandler(event:SecurityErrorEvent):void {
            trace("securityerror",event);
        }

        protected function onPlayerError(event:Event):void {
            trace("player error:");
        }

        protected function onPlayerStateChange(event:Event):void {
            trace("player state:", Object(event).data);
        }

        protected function onVideoPlaybackQualityChange(event:Event):void {
            trace("video quality:", Object(event).data);
        }

    ]]>
</fx:Script>
<s:SWFLoader id="swfLoader" x="0" y="64" width="100%" height="100%"
             securityError="swfLoader_securityErrorHandler(event)"/>

如你所见,你不需要嵌入html。你也可以添加滑块和按钮..有关更多信息,请参阅youtube actionscript api:https://developers.google.com/youtube/flash_api_reference

答案 1 :(得分:-2)

我不知道你在Flex中嵌入游戏有什么样的问题。这是非常可能的,它不应该那么难。请参考this example自行实施。

P.S。我通过谷歌搜索找到了这个例子。你应该在某个时候尝试一下。