我正在构建一个关于camera2video API的应用。想要全屏显示预览,但它占据了屏幕的70%区域,如Camera2video API Github所示https://github.com/googlesamples/android-Camera2Video 此外,视频质量参数没有选项,因为它已在不推荐使用的Camera API中提供。
答案 0 :(得分:1)
Camera2Video
演示包含一个名为AutoFitTextureView
的类,它适合纹理视图中的预览,同时保留纵横比。如果您想要拉伸预览以填充整个屏幕,只需使用常规TextureView
而不是此类。
您需要替换AutoFitTextureView
类中Camera2VideoFragment
的引用,以及纵向和横向的布局XML文件中的引用。将layout_width
和layout_height
更改为match_parent
。
并且视频质量参数没有选项,因为它已在不推荐使用的Camera API中提供
在mMediaRecorder
的{{3}}对象(Camera2VideoFragment
)上进行设置。
答案 1 :(得分:1)
int width = MeasureSpec.getSize(widthMeasureSpec);
int height = MeasureSpec.getSize(heightMeasureSpec);
if (0 == mRatioWidth || 0 == mRatioHeight) {
setMeasuredDimension(width, height);
} else {
if (width < height * mRatioWidth / mRatioHeight) {
setMeasuredDimension(height * mRatioWidth / mRatioHeight, height);
} else {
setMeasuredDimension(width, width * mRatioHeight / mRatioWidth);
}
}
在onMeasure方法的AutoFitTextureview类中更改此内容
答案 2 :(得分:0)
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];
}
接下来,您应该将 android:layout_alignParentEnd =&#34; true&#34; 插入默认布局文件夹的fragment_camera2_video.xml。它看起来像:
<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" />