对RTMP视频流进行BitmapData.draw()出错的解决办法
在对Flash Media Server中的视频流使用BitmapData.draw()进行绘制的时候,会抛出这样异常:
cannot access rtmp://xxxxx. No policy files granted access. at flash.display::BitmapData/draw()
这个错误出现的原因是,客户端(swf)没有权限复制NetStream中的原始视频数据。看提示,是需要一个策略文件。
但是,在FMS服务器上无法放置策略文件,FMS也不能像Socket服务器那样发送策略文件给客户端,这种情况应该怎么处理呢?
答案在这里:
只需要FMS在同意client连接后,为其设置videoSampleAccess属性即可。videoSampleAccess的设置方式与readAccess相同。
范例:
1application.onConnect = function($client)
2{
3 application.acceptConnection($client);
4 //设置成"/",允许所有路径
5 client.videoSampleAccess = "/";
6}
- 文章ID:1483
- 原文作者:zrong
- 原文链接:https://blog.zengrong.net/post/bitmapdata_draw_on_rtmp_video/
- 版权声明:本作品采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可,非商业转载请注明出处(原文作者,原文链接),商业转载请联系作者获得授权。