私のアプリは、ユーザーが写真を撮ったりビデオを録画したりできるカメラを提供します。ユーザーがどのアクションを選択するかを知る可能性はありません。したがって、両方のアクションにカメラ プレビューを提供する必要があります。古いカメラ API ではまったく問題はありませんでしたが、camera2 API についてはよくわかりません。
私は両方の Google の例 ( Camera2BasicとCamera2Video ) を徹底的に調べましたが、写真を撮るためにプレビュー ビルダーがCameraDevice.TEMPLATE_PREVIEWを使用していることに気付きました。
mPreviewRequestBuilder = mCameraDevice.createCaptureRequesT(CameraDevice.TEMPLATE_PREVIEW);
ビデオ録画の場合、CameraDevice.TEMPLATE_RECORDを使用します。
mPreviewBuilder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_RECORD);
CameraDeviceクラスのすべてのテンプレートの説明を確認しましたが、私の場合の正しい方法はまだわかりません。ビデオ録画用にTEMPLATE_PREVIEWを設定しようとしましたが、問題なく動作しましたが、この場合、ビデオの品質が低下する可能性があることを正しく理解していますか? docs には、次のように記載されています。
具体的には、これは、最高品質の後処理よりも高いフレームレートが優先されることを意味します。