2010-09-14 1 views
2

Я пытаюсь использовать BitmapData.draw() для видеообъекта, но с использованием среды OSMF.с использованием BitmapData.draw() в потоковой (RTMP) .f4v с OSMF

Мой хостинг установил следующее, так что я могу получить доступ к RTMP видео:

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

упрощенный код выглядит следующим образом:

_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() 

Однако, я получаю следующее сообщение об ошибке :

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

ответ

2

Если вы загружаетесь с Adobe Media Server, параметр должен быть установлен на серверной стороне http://www.shell-tips.com/2009/08/30/flash-how-to-fix-the-security-sandbox-violation-bitmapdata-draw/ Я столкнулся с этим, когда попытался создать отражение видеопотока под видеопроигрывателем. Большинство CDN позволят вам настроить код приложения медиа-сервера ... Если вам не нужно менять CDN или переключиться на прогрессивное воспроизведение

+0

Смотрите, это то, что я думал! Моя служба хостинга утверждает, что мне нужно изменить файл междоменного доступа, и я знал, что это была койка. – redconservatory

0

Вы можете попробовать рисовать контейнер вместо самого видеообъекта. Источником метода draw может быть тип Bitmap или DisplayObject, поэтому любой MovieClip или Sprite, который добавляет ваше видео, должен быть доступен для рисования.

Edit: Вы правы, на самом деле не думать, если есть проблема безопасности, рисуя контейнер не изменится ...

Вы можете попробовать это:

 
import flash.system.Security; 

Security.loadPolicyFile('policyfileURL'); 
+0

Хм, я думаю, что это помогает, но я все еще получаю сообщение об ошибке безопасности. Есть ли способ установить checkPolicyFile = true с помощью OSMF? – redconservatory

+0

, пожалуйста, проверьте отредактированный ответ – PatrickS