5

次の非常に単純なカメラ プレビュー アクティビティ (ここにある Google の例から) を使用すると、Nexus 4 カメラは、デバイスの標準カメラ アプリケーションよりも著しく遅くなります。

public class LiveCameraActivity extends Activity implements TextureView.SurfaceTextureListener {
      private Camera mCamera;
      private TextureView mTextureView;

      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);

          mTextureView = new TextureView(this);
          mTextureView.setSurfaceTextureListener(this);

          setContentView(mTextureView);
      }

      public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
          mCamera = Camera.open();

          try {
              mCamera.setPreviewTexture(surface);
              mCamera.startPreview();
          } catch (IOException ioe) {
              // Something bad happened
          }
      }

      public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height) {
          // Ignored, Camera does all the work for us
      }

      public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) {
          mCamera.stopPreview();
          mCamera.release();
          return true;
      }

      public void onSurfaceTextureUpdated(SurfaceTexture surface) {
          // Invoked every time there's a new Camera preview frame
      }
  }

Nexus 4 でアプリケーションのカメラ速度に問題がありましたが、他のデバイスではこの問題は見られません。これは Jelly Bean 4.2 の違いではないかと心配していましたが、JB4.2 を実行している Galaxy Nexus フォンは遅延なく正常に動作します。このサンプル コードでは TextureView を使用していることは理解していますが、他の電話ではこの例でラグが発生することはありません。

どんな助けでも大歓迎です。

4

2 に答える 2

9

記録ヒントを true に設定することで、プレビュー フレーム レートを通常のレートに上げることができることがわかりましたが、これにより、特に色の彩度とコントラストに関して中程度から低照度の状況でカメラのパフォーマンスが大幅に低下します (品質にショックを受けました)。これは、Google が iPhone 5 と彼女の高品質カメラに対抗するための最新かつ最大の試みであることを考えると、前面カメラの性能は高く評価されていません。X Phone が待ちきれません)。

これは問題の解決策ではありませんが、衝撃的なフレーム レートを回避しようとしている開発者にとっては応急処置のようなものです。

于 2013-01-08T19:28:26.200 に答える
1

画像サイズを 3264x2448 に設定すると、これで修正されます。ZSL はデフォルトで有効になっているため、写真を撮ったことがない場合でも、写真のサイズは重要です。デフォルトの画像サイズは 640x480 で、これによりプレビュー フレーム レートが遅くなります。ZSL を無効にすると、プレビューがさらに高速になります。そのため、レコーディング ヒットを true に設定すると効果的です。HDR を有効にすると、同じことが行われます。

于 2013-03-25T19:46:29.490 に答える