我正在尝试获取在我的客户端上播放的Wowza视频流的位图/快照,如下所示:
var bitmapData:BitmapData = new BitmapData(view.videoPlayerComponent.width, view.videoPlayerComponent.height);
bitmapData.draw(view.videoPlayerComponent);
当我这样做时,我收到此错误消息:
SecurityError:错误#2123:安全沙箱冲突:BitmapData.draw:http://localhost:51150/Resources/WRemoteWebCam.swf无法访问rtmp://localhost/videochat/smithkl42._default/。没有授予访问权限的策略文件。
我认为错误来自无法找到相应的crossdomain.xml文件。我不太确定它在哪里寻找它,并且一个wirehark嗅闻是不确定的,所以我尝试在以下每个地方放置一个:
http://localhost/crossdomain.xml
http://localhost:1935/crossdomain.xml
http://localhost:51150/crossdomain.xml
我可以从这三个位置中的每一个成功检索文件。 (我很确定最后一个不会产生任何影响,因为它只是托管.swf文件的网页所在的网站的位置,但是有机会......)
这些是它在每个实例中抓取的文件的内容:
<cross-domain-policy>
<allow-access-from domain="*" to-ports="*" />
</cross-domain-policy>
它仍然会抛出相同的错误消息。
我还按照Wowza forums上的说明操作,在[install] \ conf [appname] \ Application.xml中打开StreamVideoSampleAccess,没有任何乐趣:
<Client>
<IdleFrequency>-1</IdleFrequency>
<Access>
<StreamReadAccess>*</StreamReadAccess>
<StreamWriteAccess>*</StreamWriteAccess>
<StreamAudioSampleAccess>*</StreamAudioSampleAccess>
<StreamVideoSampleAccess>*</StreamVideoSampleAccess>
<SharedObjectReadAccess>*</SharedObjectReadAccess>
<SharedObjectWriteAccess>*</SharedObjectWriteAccess>
</Access>
</Client>
有什么想法吗?
答案 0 :(得分:1)
这不是一个crossdomain.xml问题:这是relevant Adobe documentation。我认为this post也可能有所帮助。
答案 1 :(得分:1)
我也在使用Wowza,我遇到了和你相同的问题,我在这里做了什么:
更改了Application.xml配置,为客户端添加*&gt;访问&gt; ...
加载一个crossDomain.xml文件,这里是我用来加载http或流文件的代码片段:
var url:String = this.vVideos.selectedItem.url;
var protocol:String = URLUtil.getProtocol(url).toLowerCase();
var crossDomainXmlUrl:String;
if (protocol == 'rtmp' || protocol == 'rtmpt')
{
crossDomainXmlUrl = 'http://' + URLUtil.getServerName(url) + ':1935/crossdomain.xml';
}
else
{
crossDomainXmlUrl = 'http://' + URLUtil.getServerName(url) + '/crossdomain.xml';
}
Security.loadPolicyFile(crossDomainXmlUrl);
this.videoMedia.source = url;
this.videoMedia.visible = true;
setTimeout(this.play,1000);
eBuildy,Adobe Flex专家