Forums Développement Multimédia

Aller au contenu

error 3207 et wrapper html

CODE Actionscript

1 réponse à ce sujet

#1 alamata

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 120 messages

Posté 25 November 2010 - 05:06 AM

Bonjour a tous,...

voila ce qui m'amene a vous,...

partant du tour de flex ou est propose un exemple avec l'api youtube
avec (as3-youtube-data-api)


                protected function init():void
                        {
                                youTube = YouTubeFeedClient.getInstance();
                                youTube.addEventListener(VideoFeedEvent.VIDEO_DATA_RECEIVED, onVideoDataReceived);
                                 // Specifically allow the chromless player .swf access to our .swf.
                        Security.allowDomain("http://www.youtube.com");
                        this.loadVideoPlayer();
                        }
                       
                        protected function search():void
                        {
                                youTube.getVideos(searchText.text);
                        }
                       
                        protected function onVideoDataReceived(event:VideoFeedEvent):void
                        {
                                ac.removeAll();
                                var vf:VideoFeed = event.feed as VideoFeed;
                                if (event.feed.totalResults > 0)
                                {
                                        var arr:Array = new Array();
                                        if (event.feed != null && event.feed.count > 0) {
                                                for (var i:int = 0; i<vf.count; i++)
                                                {
                                                        var vd:VideoData = vf.getAt(i) as VideoData;
                                                        ac.addItem(vd);
                                                        trace("Data published " + vd.published + " updated " + vd.updated + " id " + vd.actualId + " mobile URL: " +  vd.mobileUrl + " Links: " + vd.links.first().href + " first author " + vd.authors.first().name);
                                                }
                                                // sort the grid data by Post Date (column index 2) by simulating the header click events, the 2nd time
                                                // will make it descending... yes this is a major hack to avoid a bunch of sorting code <img src='http://flash.mediabox.fr/public/style_emoticons/<#EMO_DIR#>/smile.gif' class='bbc_emoticon' alt=':)' />!
                                                this.dg.dispatchEvent(new DataGridEvent(DataGridEvent.HEADER_RELEASE,false,true,2,null,0,null,null,0));
                                                this.dg.dispatchEvent(new DataGridEvent(DataGridEvent.HEADER_RELEASE,false,true,2,null,0,null,null,0));
                                        }
                                }
                                else {
                                        Alert.show("No matching videos found.");
                                }
                        }
                               
                        protected function onSWFLoaderIoError(event:IOErrorEvent):void {
                          trace('SWFLoader - IoError: ' + event.text);
                        }

                        protected function loadVideoPlayer():void
                        {
                                // Load the YouTube Video Player SWF here and then we'll embed it to show how that API is used. It can then be used to respond
                                // to different events. See this URL for more info: http://code.google.c...e.html#Examples
                                loader.contentLoaderInfo.addEventListener(Event.INIT, onLoaderInit);
                                loader.load(new URLRequest("http://www.youtube.com/apiplayer?version=3"));
                        }
                       
                        protected function onLoaderInit(event:Event):void {
                            loader.content.addEventListener("onReady", onPlayerReady);
                            loader.content.addEventListener("onError", onPlayerError);
                            loader.content.addEventListener("onStateChange", onPlayerStateChange);
                            loader.content.addEventListener("onPlaybackQualityChange",
                                onVideoPlaybackQualityChange);
                        }
                       
                        protected function onPlayerReady(event:Event):void {
                            // Event.data contains the event parameter, which is the Player API ID
                            trace("player ready:", Object(event).data);
                       
                            player = loader.content;
                            player.setSize(240, 210);
                                swfLoader.addEventListener(flash.events.IOErrorEvent.IO_ERROR , onSWFLoaderIoError);
                                swfLoader.autoLoad = true;
                                swfLoader.scaleContent = true;
                                swfLoader.maintainAspectRatio = true;
                                swfLoader.load(player);
                        }
                       
                        protected function onVideoSelected():void
                        {
                                this.buttonBar.visible=true;
                                var vd:VideoData = dg.selectedItem as VideoData;
                                if (vd != null)
                                {
                                    player.cueVideoById(vd.actualId);
                                    txtTitle.text = vd.title;
                                    txtAuthor.text = "by: " + vd.authors.first().name;
                                }
                        }
                       
                        protected function onPlayerError(event:Event):void {
                            trace("Player error:", Object(event).data);
                        }
                       
                        protected function onPlayerStateChange(event:Event):void {
                            trace("Player state changed:", Object(event).data);
                        }
                       
                        protected function onVideoPlaybackQualityChange(event:Event):void {
                            trace("Video quality playback change:", Object(event).data);
                        }
                       
                        protected function buttonBarClickHandler(event:ItemClickEvent):void
                        {
                                if (event.index == 0)
                                {
                                        player.playVideo();
                                }
                                else if (event.index == 1)
                                {
                                        player.pauseVideo();
                                }
                                else if (event.index == 2)
                                {
                                        player.stopVideo();
                                }
                        }
                ]]>
 



j'ai voulu interger cet exemple a une appli AIR

cependant j'obtiens une erreur 3207

SecurityError: Error #3207: Application-sandbox content cannot access this feature.
at flash.system::Security$/allowInsecureDomain()


:shock:

essayant de decouvrir une solution sur le web
j'ai trouve qu'une etait deja porporsee

l'integration par un wrapper html,...

dont les codes as et html sont les suivant



package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.html.HTMLLoader;
import flash.net.URLRequest;

public class YouTubePlayer extends Sprite
{
private var _html:HTMLLoader;
private var _ready:Boolean = false;
private var _videoID:String;

//public var
public var videoID:String;

public function YouTubePlayer(_id:String,_w:uint,_h:uint)
{
_html = new HTMLLoader();
_html.paintsDefaultBackground = false;
_html.width = _w;
_html.height = _h;
_videoID = _id ;
_html.addEventListener(Event.COMPLETE, onComplete);

loadHTMLcontent()

this.addChild( _html );
}

public function loadNewVideo(videoID:String):void
{
if(_ready){
_html.window.loadNewVideo(videoID);
}
}

public function playVideo():void
{
if(_ready){
_html.window.play();
}
}

public function pauseVideo():void
{
if(_ready){
_html.window.pause();
}
}

private function onComplete (e:Event):void
{
_ready = true;
_html.window.loadDefaultVideo(_videoID,_html.width.toString(),_html.height.toString());

}

public function loadHTMLcontent():void
{
_html.load(new URLRequest('player.html'));
}

}
}
 

et


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script src="js/swfobject.js" type="text/javascript"></script>
<script type="text/javascript">


function loadDefaultVideo(id,w,h)
{
// id = "d8Vw5r7-vgs";
// w ="640";
// h ="390";
var params = { allowScriptAccess: "always", wmode: "transparent", allowfullscreen: "true" };
// The element id of the Flash embed
var atts = { id: "myytplayer" };
// All of the magic handled by SWFObject (http://code.google.com/p/swfobject/)
swfobject.embedSWF("http://www.youtube.com/v/" + id + "&enablejsapi=1&playerapiid=player1&fs=1",
"ytapiplayer", w, h, "8", null, null, params, atts);
}

    function onYouTubePlayerReady(playerId) {
       ytplayer = document.getElementById("myytplayer");
    }

    // functions for the api calls
    function loadNewVideo(id, startSeconds) {
      if (ytplayer) {
        ytplayer.loadVideoById(id, startSeconds);
      }
    }

    function play() {
      if (ytplayer) {
        ytplayer.playVideo();
      }
    }

    function pause() {
      if (ytplayer) {
        ytplayer.pauseVideo();
      }
    }
   
</script>
  </head>
  <body id="page">
    <div>
     <div id="ytapiplayer">
</div>
  </div>
  </body>
</html>
 

cependant malgre ces informations
je n'arrive pas a l'heure actuelle
a quelque chose de fonctionnel... :oops:


une idee pour me permettre
de mettre en place les differentes pieces du puzzle

#2 alamata

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 120 messages

Posté 25 November 2010 - 08:54 AM

:oops: ... il etait fort tard ou fort tot... :oops:


tout est ok, le puzzle est en place,... ;))



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)