0

カメラのプレビューを表示する Android アプリの一部を構築しています。現在のデバイスで可能な正しい (最適な) プレビュー サイズを設定したいと思います。

これを実現するために、次のコードを使用しました。

public void surfaceChanged(SurfaceHolder surfaceHolder, int format, int w, int h) {
    Parameters parameters = camera.getParameters();
    List<Size> sizes = parameters.getSupportedPreviewSizes();

    // the list seems to be in that order, that the best quality is the first element
    parameters.setPreviewSize(sizes.get(0).width, sizes.get(0).height);

    camera.setParameters(parameters);
    camera.startPreview();
}

私の質問は、次の方法がどのデバイスでも最高のプレビュー品質を得るのに適しているかどうかです。

public void surfaceChanged(SurfaceHolder surfaceHolder, int format, int w, int h) {
    Parameters parameters = camera.getParameters();

    Size preferredSize = parameters.getPreferredPreviewSizeForVideo();
    parameters.setPreviewSize(preferredSize.width, preferredSize.height);

    camera.setParameters(parameters);
    camera.startPreview();
}

現在、私は 1 つのデバイス (Nexus 4) しか持っていません。このデバイスでは、両方の方法で同じ結果が得られます。しかし、私はあなたがどの方法を提案するのか疑問に思っています。

4

2 に答える 2

3

この方法の使用はあまりお勧めできません。Galaxy S4 では、このメソッドは 176x144 の優先ビデオ プレビュー サイズを返します。開発者がここで最大サイズではなく最小サイズを誤って返したようです...これをプレビューとして使用すると、見た目が悪く、記録されたビデオを破壊することさえあります.

于 2013-09-03T08:10:25.560 に答える
0

のドキュメントからgetPreferredPreviewSizeForVideo()

ビデオカメラ アプリケーションでは、プレビュー サイズを優先プレビュー サイズより大きくない値に設定する必要があります。つまり、プレビュー サイズの幅と高さの積は、優先プレビュー サイズの積よりも大きくしてはなりません。

したがって、基本的にはプレビューが推奨サイズよりも大きくなってはならないため、このメソッドは利用可能な最大のプレビュー サイズを返す必要があります

によって返されるリストが正しいgetSupportedPreviewSizes()とは限らないため、この方法を使用することもお勧めします。故障したものはまだ見たことがありませんが、それはすべてのデバイスがそれを尊重するという意味ではありません。

于 2013-03-17T19:51:41.310 に答える