2010-09-14 32 views
2

J'essaie d'utiliser BitmapData.draw() sur un objet vidéo, mais en utilisant le cadre OSMF.en utilisant BitmapData.draw() sur un streaming (RTMP) .f4v avec OSMF

Mon service d'hébergement a mis en place les éléments suivants pour que je puisse accéder à mon RTMP vidéo:

<VideoSampleAccess enabled="true">/</VideoSampleAccess> 

Code simplifié est la suivante:

_videoURL = "my-url-here"  
resource = new StreamingURLResource(_videoURL); 
videoElement = new VideoElement(resource);   
_player.media = videoElement; 
container.addMediaElement(videoElement); 
_player.autoPlay = true; 
_player.play(); 

// later on, pause the player at the end 
_player.pause(); 
// get the Video object 
videoObj = _player.displayObject as Video; 
// detach the netstream 
videoObj.attachNetStream(null); 

// get the bitmap from the Video object and draw on it.. 
bmpdata:BitmapData = new BitmapData(videoObj); 

bmpdata.draw() 

Cependant, je reçois le message d'erreur suivant :

SecurityError: Error #2135: Security sandbox violation: BitmapData.draw: ... 

Répondre

2

Si le streaming provient d'Adobe Media Server, le paramètre doit être défini côté serveur http://www.shell-tips.com/2009/08/30/flash-how-to-fix-the-security-sandbox-violation-bitmapdata-draw/ Je suis tombé sur ce point lorsque j'ai tenté de créer un reflet du flux vidéo sous le lecteur vidéo. La plupart des CDN vous permettront de personnaliser votre code d'application de serveur multimédia ... Sinon, vous devez changer de CDN ou passer à la lecture progressive

+0

Voir, c'est totalement ce que je pensais! Mon service d'hébergement ne cesse de prétendre que j'ai besoin de changer un fichier inter-domaine et je savais que c'était un lit. – redconservatory

0

Vous pouvez essayer de dessiner le conteneur à la place de l'objet vidéo lui-même. La source de la méthode draw peut être de type Bitmap ou DisplayObject, de sorte que tout MovieClip ou Sprite qui ajoute votre vidéo devrait être dessinable.

Edit: Vous avez raison, n'a pas été vraiment penser, s'il y a un problème de sécurité, en tirant le conteneur ne changera pas beaucoup ...

Vous pouvez essayer ceci:

 
import flash.system.Security; 

Security.loadPolicyFile('policyfileURL'); 
+0

Hm, je pense que cela aide, mais je reçois toujours une erreur de sécurité. Est-il possible de définir checkPolicyFile = true en utilisant OSMF? – redconservatory

+0

s'il vous plaît vérifier la réponse éditée – PatrickS