Android – Embed YouTube video player into Android Mobile application

airandroidapache-flexmobileyoutube

Is there any way to embed YouTube video/video player into Android Flex AIR Mobile application?

I tried to use SWFLoader(…) but since its MX library class only works on the desktop runtime environment, but fails to work on actual Android device when debugging the application. Any ideas?

Maybe it's possible to embed HTML that contain YouTube video into some Flex media container like TextArea or something?

Best Answer

here you go, sir:

        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)"/>

as you see, you dont need to embed html. you can add sliders and buttons as well.. for more information, see youtube actionscript api: https://developers.google.com/youtube/flash_api_reference

Related Topic