0

flexを使用してビデオチャットアプリケーションを開発しています。帯域幅をチェックした後、その結果に基づいてカメラの解像度のサイズを変更したいと思います。

しかし、毎秒カメラフレームがフリーズし、フラッシュプレーヤーを強制終了して再起動する必要があります。カメラは基本的にクラッシュします。

private var camera:Camera;


private function setCameraResolution(width:Number, height:Number):void {
    try {
        camera = null;
        camera = Camera.getCamera();

        if (camera == null) {
            infoPanel.title = "Error: ";
            infoText.text = "No Camera Found";
            infoPanel.visible = true;
            hideAllControllers();
            throw new Error("No Camera Found");
        }

        camera.setQuality(0, 80);
        camera.setKeyFrameInterval(15);
        camera.setMode(width, height, 24);
        camera.addEventListener(ActivityEvent.ACTIVITY, cameraActivityHandler);

        videoCamera.clear();
        videoCamera.attachCamera(camera);
    } catch (error:Error) {
        if (debug) {
            ExternalInterface.call('console.log', "Error: " + error.message);
        }
    }
}

この時点では、カメラはどのNetStreamにも接続されていません。これは一部のカメラでのみ発生し、私はMacで作業しています。解像度が変わる他のサイトでも確認しましたが、問題はありませんでした。それは私のコードでなければなりません。

ご助力ありがとうございます

4

2 に答える 2

0

この質問を確認することをお勧めしますAS3を使用してカメラの品質を向上させる方法は?

カメラをnullにするべきではないと思います。cam.setMode()を呼び出してみてください

于 2012-09-12T14:44:06.730 に答える
0

カメラの解像度を2回以上変更しないでください。

代わりに、カメラ出力を表すために使用しているコンポーネントをスケーリングします。

于 2012-09-12T14:00:20.107 に答える