2

複数の写真を撮りたいのですが、これらのコードを使用しています。ただし、短時間で画面がフリーズし (プレビューの停止と開始後)、ユーザーを不快にさせます。この問題を解決するにはどうすればよいですか。ご清聴ありがとうございました。

PictureCallback jpegCallback = new PictureCallback() {
        public void onPictureTaken(byte[] data, Camera camera) {
            cpreview.mCamera.startPreview();
            FileOutputStream outStream = null;
            /*try {

                outStream = new FileOutputStream(String.format(
                        "/sdcard/camtest/%d.jpg", System.currentTimeMillis()));
                outStream.write(data);
                outStream.close();

            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
            }*/

        }
    };

仕方がなければ、動画を撮ってから画像に変換することも考えています(時間はかかりますが)。

4

2 に答える 2

1

nexus 4、samsung galaxy s5 などの最新の携帯電話の一部は、「zsl」(ゼロ シャッター ラグ) と呼ばれるカメラ パラメータをサポートしています。

通常の画像キャプチャ シーケンスでは、カメラ HAL はプレビューを停止して写真を撮ります。ただし、このパラメータが設定されている場合、画像のキャプチャ中にプレビューは停止しません。また、画像は比較的速くキャプチャされます。プレビューは停止されないため、上記の問題は発生しません。また、画像コールバックでプレビューの開始を呼び出す必要もありません。

于 2014-12-31T11:11:42.670 に答える
0

シームレスにする方法はありません (ただし、新しい携帯電話では一時停止が小さくなっています)。画像をキャプチャしている間、カメラが忙しすぎてプレビューをフィードできません。

ビデオは優れた代替手段ですが、画質を大幅に犠牲にする意思がある場合に限ります。無駄なスペースが気になる場合は、画像を抽出した後に元のビデオを削除できます。

于 2013-08-05T18:12:23.230 に答える