因为flash的跨域问题, 会导致BitmapData.draw() 方法在对有跨域加载的视频流, 图片等资源时抛出SecurityError异常导致无法正常抓图
解决方式在帮助文档也有说, 总结一下:
1.图片跨域
在被加载图片域放置crossdomain.xml
load(new URLRequest(path), new LoaderContext(true));
2.点播流(http视频流)
在被加载视频域放置crossdomain.xml
设置netStream.checkPolicyFile = true;
3.实时流跨域
这个要在FlashPlayer 9.0.115.0才有效
方法来源于:
http://www.ekameleon.net/blog/index.php?2008/02/20/93--fmis3-bitmapdatadraw-and-flash-player-901150-security-sandbox-violation
我只做了fms3下的测试通过.
简单点说就是在fms应用的main.asc 中加上
application.onConnect = function( client )
{
// fix Security sandbox violation : BitmapData.draw on RTMP source
client.videoSampleAccess = "/";
this.acceptConnection(client) ;
}