gpt4 book ai didi

android - Android 中使用 SurfaceTexture 的相机预览示例

转载 作者:IT老高 更新时间:2023-10-28 22:16:25 33 4
gpt4 key购买 nike

我正在尝试使用 SurfaceTexture 渲染相机预览.我阅读了文档,但无法理解它是如何工作的。

谁能提供一个示例(非常基本的)或使用SurfaceTexture的链接预览相机。我用谷歌搜索了这个,但没有找到我要找的东西。

提前致谢。

最佳答案

如果你想将相机与 TextureSurface 一起使用,你可以实现 SurfaceTextureListener 接口(interface)。您必须实现 4 种方法:

1) onSurfaceTextureAvailable - 在这里设置你的相机

2)onSurfaceTextureSizeChanged - 在您的情况下,Android 的相机将处理此方法

3)onSurfaceTextureDestroyed - 在这里你销毁所有相机的东西。

4) onSurfaceTextureUpdated- 当你有什么要改变的时候在这里更新你的纹理!

查看以下示例:

    public class MainActivity extends Activity implements SurfaceTextureListener{

private Camera mCamera;
private TextureView mTextureView;

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

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

setContentView(mTextureView);
}

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

Camera.Size previewSize = mCamera.getParameters().getPreviewSize();
mTextureView.setLayoutParams(new FrameLayout.LayoutParams(
previewSize.width, previewSize.height, Gravity.CENTER));

try {
mCamera.setPreviewTexture(surface);
} catch (IOException t) {
}

mCamera.startPreview();

}

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

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

@Override
public void onSurfaceTextureUpdated(SurfaceTexture surface) {
// Update your view here!
}
}

还有两件事:不要忘记在项目的 list 中添加相机权限,并且 API 11 中提供了 SurfaceTexture

关于android - Android 中使用 SurfaceTexture 的相机预览示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11539139/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com