texture.setDefaultBufferSize(mPreviewSize.getWidth(), mPreviewSize.getHeight()); Cannot resolve symbol 'mPreviewSize'
时间: 2023-10-07 18:03:56 浏览: 42
这个错误通常是因为你没有在代码中声明 `mPreviewSize` 变量。
你需要确保在你的代码中先声明并初始化 `mPreviewSize` 变量。例如:
```java
private Size mPreviewSize; // 在类中声明变量
mPreviewSize = new Size(1920, 1080); // 初始化变量
texture.setDefaultBufferSize(mPreviewSize.getWidth(), mPreviewSize.getHeight()); // 使用变量
```
请注意,这里的 `new Size(1920, 1080)` 是示例值,你需要使用你实际的预览大小来初始化 `mPreviewSize` 变量。
相关问题
texture.setDefaultBufferSize(mPreviewSize.getWidth(), mPreviewSize.getHeight());
这行代码是在设置预览界面的默认缓冲区大小,使得预览图像能够填满整个预览界面。其中,mPreviewSize 是预览界面的大小,通过调用 Camera2 API 获取。setDefaultBufferSize() 方法的第一个参数是宽度,第二个参数是高度。这个方法会在 SurfaceTexture 中设置默认缓冲区大小,以匹配预览界面的大小。
private void createPreviewSession() { try { SurfaceTexture texture = mTextureView.getSurfaceTexture(); texture.setDefaultBufferSize(mPreviewSize.getWidth(), mPreviewSize.getHeight()); Surface surface = new Surface(texture); mPreviewRequestBuilder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW); mPreviewRequestBuilder.addTarget(surface); mCameraDevice.createCaptureSession(Arrays.asList(surface), new CameraCaptureSession.StateCallback() { @Override public void onConfigured(CameraCaptureSession session) { mCaptureSession = session; try { mPreviewRequest = mPreviewRequestBuilder.build(); mCaptureSession.setRepeatingRequest(mPreviewRequest, null, null); }catch (CameraAccessException e) { e.printStackTrace(); } } @Override public void onConfigureFailed(CameraCaptureSession session) { Toast.makeText(Diary.this, "Failed", Toast.LENGTH_SHORT).show(); } }, null); }catch (CameraAccessException e) { e.printStackTrace(); } } //开始预览 private void startPreview() { try { createPreviewSession(); }catch (CameraAccessException e) { e.printStackTrace(); } }
这段代码是用于 Android 相机预览的,主要分为两个部分:
1. createPreviewSession():该方法用于创建相机预览会话,其中包括设置预览的 Surface 和捕获请求等操作。在该方法中,首先获取 TextureView 的 SurfaceTexture 并设置其大小,然后将其转换为 Surface 对象,接着创建相机捕获请求模板为 TEMPLATE_PREVIEW 的 CaptureRequest,并将其添加到会话的目标列表中。最后通过 CameraCaptureSession.setRepeatingRequest() 方法启动预览。
2. startPreview():该方法用于开始相机预览,通过调用 createPreviewSession() 方法来创建预览会话。
需要注意的是,在 Android 相机开发中,相机预览是一个很重要的功能,需要仔细处理好各种异常情况。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)