1

ステージ上に Web カメラを表示する AIR アプリケーションを flash/as3 で構築しました。アプリのビルド中、および私のすべてのテストでは、すべてが見た目も動作も素晴らしいのですが、AIR 用にパブリッシュすると、画像が引き伸ばされます。画像の境界は同じように見えますが、実際のカム出力は歪んでいます。誰かが以前にこの問題に遭遇したことがありますか?

これはデスクトップ アプリであり、1 台のマシンに永続的にインストールされるため、デバイスの互換性は問題になりません。

これはカメラのセットアップです:

    var cam:Camera = Camera.getCamera();
    cam.setMode(280,380,20);
    var video:Video = new Video(380,380);

これは私が最初にカメラを呼び出す場所です...

    video.attachCamera(cam);
    video.x = 355;
    video.scaleX = -1;
    video.y = -100;
    addChildAt(video, 0);

奇妙なサイズの理由は、フレームの後ろにあり、インタラクティブ全体で位置が変わるためです。

4

2 に答える 2

2

必ずしもあなたが探している答えではありませんが、次の点に注意してください。

カメラに 280 x 380 の解像度でキャプチャするように要求していますが、これは標準の 4:3 アスペクト比ではありません。

ドキュメントを呼び出すcam.setMode(280,380,20);と、Flash はカメラの解像度を仕様に合わせて設定しようとし、カメラがその解像度をサポートしていない場合は、一致する解像度を見つけようとします。したがって、この実際の解像度が得られる場合と得られない場合があります。

setMode()には、この機能を無効にできる 4 番目のパラメーターがあります。それに関するドキュメントを読んで、その意味を理解してください:)

次に、380x380 の Video オブジェクトでビデオを表示します。したがって、画像が水平方向に引き伸ばされると予想されます(b / c元のソースはわずか280です)。

これが異なる動作をする理由は明らかではありません: アプリのデバッグ バージョンを実行すると機能すると言いますが、リリース ビルドをエクスポートして実行すると、ファンキーに見えますか?

最後に、何をscaleX = -1していますか?私はこれを私が過去に使用したある種の気の利いたトリックとして思い出します...しかし、ここでの目的は私を逃れることです:)

于 2012-05-24T17:55:55.723 に答える
-1

うん、ソースコードはクールだろう。ところで、ビデオ ストリーミングを実行したらすぐに、手動で video.width および video.height プロパティを設定することをお勧めします。これにより、カムが正しいサイズで表示されます。

于 2012-05-19T10:47:08.990 に答える