3

次のように、クライアントで再生中の 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 ファイルが見つからないことが原因であると推測されます。それがどこを探しているのかよくわからず、wireshark のスニフも決定的ではなかったため、次の各場所に配置してみました。

http://localhost/crossdomain.xml
http://localhost:1935/crossdomain.xml
http://localhost:51150/crossdomain.xml

これら 3 つの場所のそれぞれからファイルを正常に取得できます。(.swfファイルをホストするページをホストするWebサイトの場所にすぎないため、最後のものは何の効果もないと確信していますが、偶然...)

これらは、各インスタンスで取得しているファイルの内容です:

<cross-domain-policy> 
    <allow-access-from domain="*" to-ports="*" /> 
</cross-domain-policy>

そして、それはまだ同じエラーメッセージをスローしています。

また、 Wowza フォーラムの指示に従って、[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>

何かご意見は?

4

2 に答える 2

1

私もWowzaを使用しています。私はあなたと同じ問題を抱えていました。ここで私がしたこと:

  1. Application.xml の構成を変更し、* クライアント > アクセス > ... 用に追加しました。

  2. 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 スペシャリスト

于 2010-06-16T12:20:05.613 に答える
1

これは crossdomain.xml の問題ではありません。関連する Adob​​e ドキュメントは次のとおりです。この投稿も参考になるかと思います。

于 2009-07-31T23:43:19.040 に答える