我发布了一个关于更一般情况的类似问题,但这个问题特别针对RTMP。
我们有一个用AS3编写的Adobe AIR应用程序,可以查看来自其他方的实时视频流。话虽这么说,当试图在其中一个远程视频流上调用BitmapData.draw()
时(技术上我们称之为ImageSnapshot.captureImage()
),我们收到了2123错误 - 安全沙箱异常。我已经看到很多人在AMS中引用了一个真正的简单配置,这将允许它适用于RTMP流,但是他们不断发布断开的链接,链接到只隐约提到这个配置的帖子等等。一件事我确实找到了我在申请时遇到的问题:
为了完成上述工作,我尝试将audioSampleAccess
和videoSampleAccess
都设置为"/"
,但无济于事。在AMS上,在Application.xml中,我设置了以下配置:
<FolderAccess>true</FolderAccess>
<AudioSampleAccess enabled="true">*</AudioSampleAccess>
<VideoSampleAccess enabled="true">*</VideoSampleAccess>
我也看到了建立一个开放的跨域策略文件的引用,但我看到人们强调这没有必要,我没有看到任何明确的提及服务器上的策略文件需要。但是,我已经开始将NetStream.checkPolicyFile
设置为true
,并且我已经在网站的根目录中放置了跨域策略文件(而不是AMS)。
请不要只给我另一个链接,除非是快速,清晰的解释。如何配置AMS以允许人们从RTMP视频流中捕获屏幕截图?对于上面的文章,我尝试将videoStreamAccess和audioStreamAccess设置为“/”,即使它不起作用。我们还需要能够为P2P RTMFP流做到这一点,但这确实是一个不同的问题。感谢。
答案 0 :(得分:1)
我有以下FMS代码来修复application.onConnect方法中的错误:
client.videoSampleAccess = "/";
client.audioSampleAccess = "/";