camera2video API に関するアプリを作成しています。プレビューを全画面表示したかったのですが、代わりに、Camera2video API Github https://github.com/googlesamples/android-Camera2Videoに示されているように、画面の 70% の領域を占めています。 また、ビデオ品質パラメーターのオプションもありません。非推奨の Camera API で使用できました。
3 に答える
デモには、アスペクト比を維持しながらプレビューをテクスチャ ビュー内にCamera2Video
収める というクラスが含まれています。AutoFitTextureView
プレビューを拡大して画面全体に表示したい場合はTextureView
、このクラスの代わりに通常のクラスを使用してください。
AutoFitTextureView
クラス内のへの参照とCamera2VideoFragment
、縦向きと横向きの両方のレイアウト XML ファイル内の参照を置き換える必要があります。layout_width
とを に変更layout_height
しmatch_parent
ます。
また、非推奨の Camera API で使用可能だったため、Video Quality パラメータのオプションもありません。
のMediaRecorderオブジェクト ( mMediaRecorder
) に設定しCamera2VideoFragment
ます。
camera2 の実装はあまり良くありません。あなたの場合、メソッドchooseVideoSizeを見つけて、次のように変更します。
private Size chooseVideoSize(Size[] choices) {
for (Size size : choices) {
if (size.getWidth() == size.getHeight() * 16 / 9 && size.getWidth() <= 1080) {
return size;
}
}
Log.e(TAG, "Couldn't find any suitable video size");
return choices[choices.length - 1];
}
次に、デフォルト レイアウト フォルダの fragment_camera2_video.xml にandroid:layout_alignParentEnd="true"を挿入します。次のようになります。
<com.example.android.camera2video.AutoFitTextureView
android:id="@+id/texture"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentEnd="true" //add here
android:layout_alignParentStart="true"
android:layout_alignParentTop="true" />