2011年3月29日 星期二 | By: 雞米

[Red 5] 疑難雜症 - SecurityError: Error #2123: Security sandbox violation: BitmapData.draw

一、問題描述:

前陣子開發即時視訊相關案子,選擇了Red 5這套open source的media server。其中有項功能需要截取來自server端即時視訊的畫面,使用的方式是以呼叫BitmapData.draw()來截取畫面,出現了「 SecurityError: Error #2123: Security sandbox violation: BitmapData.draw. can not access rtmp://xxx.xxx.xxx.xxx/olfademo. No Policty files granted access」。遇到這個問題,一開始的想法就是朝著跨網域安全性問題去解決,可是更改了crossdomain.xml設定還會沒辦法解決問題。

二、問題癥結-Flash Player 9之後的安全性限制:

在查過許多資料後,得知這是Flash Player 9之後基於安全性考量,特別針對使用draw函式截取以RTMP-based NetStream畫面將會產生上述問題。此問題的解決方法會因你所採用的media server而異,也就是說FMS跟Red 5的解決方法不一樣。

三、Red 5的解決方法:

1、 到發生問題的webapp目錄下,尋找red5-web.xml這個檔案,以範例程式olfaDemo為例,其路徑為:「C:\Program Files\Red5\webapps\oflaDemo\WEB-INF\red5-web.xml」

2、在red5-web.xml檔案裡加入下列下四行:

<bean id="rtmpSampleAccess" class="org.red5.server.stream.RtmpSampleAccess">
<property name="audioAllowed" value="true"/>
<property name="videoAllowed" value="true"/>
</bean>

3、重新啟動red 5,安全性的問題就不會再出現了

0 意見:

張貼留言