在带有OSMF的流(RTMP).f4v上使用BitmapData.draw()

时间:2010-09-14 16:44:36

标签: actionscript-3 bitmapdata osmf

我试图在视频对象上使用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 个答案:

答案 0 :(得分:2)

如果您从Adobe Media Server流式传输,则需要在服务器端设置参数 http://www.shell-tips.com/2009/08/30/flash-how-to-fix-the-security-sandbox-violation-bitmapdata-draw/ 当我试图在视频播放器下创建视频流的反射时,我偶然发现了这一点。大多数CDN都允许您自定义媒体服务器应用程序代码...如果不是,您需要更改CDN或切换到渐进式播放

答案 1 :(得分:0)

您可以尝试绘制容器而不是视频对象本身。 draw方法的源可以是Bitmap或DisplayObject类型,因此添加视频的任何MovieClip或Sprite都应该是可绘制的。

编辑: 你是对的,不是真的在想,如果有安全问题,绘制容器不会有太大变化......

你可以试试这个:

import flash.system.Security;

Security.loadPolicyFile('policyfileURL');