设置缓冲区大小 vs 修改 SurfaceTexture 尺寸的区别
setDefaultBufferSize() – 设置缓冲区大小 作用:
- 设置 SurfaceTexture 内部缓冲区的默认尺寸
- 影响从相机/视频源接收到的图像数据的分辨率
- 控制实际图像数据的宽高
特点:
- 影响数据层面:决定相机输出的图像分辨率
- 不影响视图显示:不改变 TextureView 在屏幕上的显示大小
- 必须在创建 Surface 之前调用
- 用于匹配相机支持的输出分辨率
示例:
override fun onSurfaceTextureAvailable(surface: SurfaceTexture, width: Int, height: Int) {
// 设置缓冲区大小为 1920×1080(相机输出分辨率)
surface.setDefaultBufferSize(1920, 1080)
// 创建 Surface 用于相机
val cameraSurface = Surface(surface)
// 相机将输出 1920×1080 的图像数据到这个缓冲区
}
修改 TextureView 的尺寸 – 修改视图显示大小 作用:
- 改变 TextureView 在屏幕上的显示尺寸
- 通过布局参数(LayoutParams)修改
- 影响视觉层面:控制视图在 UI 中的大小和位置
特点:
- 影响显示层面:只改变
网硕互联帮助中心



评论前必须登录!
注册