Error #2123 bitmap.draw à partir d'un flux HDS dans une application Fl

Error #2123 bitmap.draw à partir d'un flux HDS dans une application Fl - Flash/ActionScript - Programmation

Marsh Posté le 17-06-2014 à 14:39:13    

Bonjour à tous,
 
Je suis en train de développer un player vidéo en Flex qui doit prendre en charge le HDS.
 
J'essaie en vain depuis hier de créer une une image Bitmap à partir d'un flux HDS que je récupère d'Akamai.
 
 
 
J'ai essayer avec un Flux RTMP, aucun problème, j'arrive bien à créer une image bitmap à partir du flux vidéo. Mais dès  que j'essaie avec un flux HDS, j'ai une erreur # 2123 qui correspond à une violation de sécurité.
 
 
 
le message complet :
 
Error #2123: Violation de la sécurité Sandbox : BitmapData.draw : http://192.168.0.194/test-hds/testHDS.swf ne peut pas accéder à null. Accès refusé à tous les fichiers de régulation.
 
 
 
 
 
J'ai créer un serveur avec Wowza en version trial pour avoir un exemple de flux HDS. Même problème qu'avec le flux d'Akamai
 
 
 
Mon Code :
 
Fichier testHDS.mxml
 

Code :
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
  3.                 xmlns:mx="library://ns.adobe.com/flex/mx"
  4.                 xmlns:s="library://ns.adobe.com/flex/spark"
  5.                 minWidth="955" minHeight="800" creationComplete="init()" layout="absolute">
  6.         <!-- Placer ici les éléments non visuels (services et objets de valeur, par exemple). -->
  7.     <fx:Declarations>
  8.     </fx:Declarations>
  9.     <fx:Script>
  10.         <![CDATA[
  11.             import mx.controls.Alert;
  12.             import mx.core.FlexGlobals;
  13.             import mx.core.UIComponent;
  14.          
  15.          
  16.             private var osmfPlayer:OSMFPlayer;
  17.          
  18.             public function init():void{         
  19.              
  20.            
  21.                 Security.allowDomain("*" )
  22.                 Security.loadPolicyFile("http://192.168.0.194/crossdomain.xml" );             
  23.              
  24.                 osmfPlayer = new OSMFPlayer();
  25.              
  26.                 this.addChild(osmfPlayer);
  27.             }
  28.             protected function myBtn_clickHandler(event:MouseEvent):void
  29.             {
  30.              
  31.                 try {
  32.                     var dpo:DisplayObject = osmfPlayer.player.displayObject;     
  33.                  
  34.                     var imgBD:BitmapData;
  35.                     var imgBitmap:Bitmap;
  36.                  
  37.                     imgBD = new BitmapData(100,100);
  38.                     imgBD.draw(osmfPlayer.player.displayObject as DisplayObject);
  39.                  
  40.                     imgBitmap=new Bitmap(imgBD);             
  41.                     var comp :UIComponent = new UIComponent();
  42.                     comp.addChild(imgBitmap);
  43.                     comp.x =0  ;
  44.                     comp.y = 720;
  45.                     addChild(comp);
  46.                     Alert.show("ok" );             
  47.                 }
  48.                 catch(e:Error){
  49.                     Alert.show(e.message);
  50.                 }
  51.             }
  52.         ]]>
  53.     </fx:Script>
  54.     <s:Button id="myBtn" x="0" y="720" label="MyButton" click="myBtn_clickHandler(event)">     
  55.     </s:Button>
  56. </mx:Application>


 
 
Fichier OSMFPlayer.as
 
 
 

Code :
  1. package
  2. {
  3.     import mx.core.UIComponent;
  4.  
  5.     import org.osmf.containers.MediaContainer;
  6.     import org.osmf.media.DefaultMediaFactory;
  7.     import org.osmf.media.MediaElement;
  8.     import org.osmf.media.MediaPlayer;
  9.     import org.osmf.media.URLResource;
  10.     public class OSMFPlayer extends UIComponent
  11.     {
  12.         //URI of the media
  13.         public static const PROGRESSIVE_PATH:String =
  14.             "http://192.168.0.194:1935/vod/mp4:sample.mp4/manifest.f4m";     
  15.      
  16.         public var player:MediaPlayer;
  17.         public var container:MediaContainer;
  18.         public var mediaFactory:DefaultMediaFactory; 
  19.      
  20.         public function OSMFPlayer()
  21.         {
  22.             initPlayer();
  23.         }
  24.      
  25.         protected function initPlayer():void
  26.         {
  27.             //the pointer to the media
  28.             var resource:URLResource = new URLResource( PROGRESSIVE_PATH );
  29.          
  30.             // Create a mediafactory instance
  31.             mediaFactory = new DefaultMediaFactory();     
  32.          
  33.             //creates and sets the MediaElement (generic) with a resource and path
  34.             var element:MediaElement = mediaFactory.createMediaElement( resource );
  35.          
  36.             //the simplified api controller for media
  37.             player = new MediaPlayer( element );
  38.          
  39.          
  40.          
  41.             //the container (sprite) for managing display and layout
  42.             container = new MediaContainer();
  43.             container.addMediaElement( element );
  44.          
  45.          
  46.             //Fit the player size
  47.             container.width =  1280;
  48.             container.height = 720 ;//- FlexGlobals.topLevelApplication.actionBar.height;
  49.          
  50.          
  51.          
  52.             //Adds the container to the stage
  53.             this.addChild( container );
  54.         }
  55.     }


 
 
crossdomain.xml
 
Emplacement :  à la racine du serveur
 
 
 

Code :
  1. <?xml version="1.0"?>
  2. <cross-domain-policy>
  3. <site-control permitted-cross-domain-policies="master-only" />
  4. <allow-access-from domain="*" />
  5. <allow-access-from domain="*.adobe.com" />
  6. <allow-access-from domain="*.macromedia.com" />
  7. </cross-domain-policy>


 
 
 
 
 
 
//fin de code
 
 
 
J'ai d'abord pensé que c'était lié au crossdomain.xml, j'en ai testé un certains nombre, ca ne change rien.
 
Je ne sais plus trop quoi faire
 
 
 
Si quelqu'un avait une idée ou une piste, je suis à cours !
 
 
 
Merci d'avance


---------------
Mon topic VDS/ACH
Reply

Marsh Posté le 17-06-2014 à 14:39:13   

Reply

Marsh Posté le 17-06-2014 à 17:22:06    

Personne n'a d'idées ?


---------------
Mon topic VDS/ACH
Reply

Marsh Posté le 24-06-2014 à 10:11:50    

up


---------------
Mon topic VDS/ACH
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed