использование BitmapData.draw () для потоковой передачи (RTMP) .f4v с OSMF - PullRequest
2 голосов
/ 14 сентября 2010

Я пытаюсь использовать BitmapData.draw () для видеообъекта, но использую среду 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 ]

2 голосов
/ 06 ноября 2010

Если вы используете потоковую передачу с Adobe Media Server, этот параметр необходимо установить на стороне сервера. http://www.shell -tips.com / 2009/08/30 / флэш-как-к-FIX-The-безопасности песочница-нарушение-BitmapData-дро / Я сталкивался с этим, когда пытался создать отражение видеопотока под видеоплеером. Большинство CDN позволяет вам настраивать код приложения вашего медиасервера ... Если нет необходимости менять CDN или переключаться на прогрессивное воспроизведение

0 голосов
/ 14 сентября 2010

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

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

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

import flash.system.Security;

Security.loadPolicyFile('policyfileURL');
...