HarmonyOS鸿蒙Next中如何设置camera.PreviewOutput采样率
HarmonyOS鸿蒙Next中如何设置camera.PreviewOutput采样率
我对相机的输出做了监听,但是现在数据采样率很高,想让频率稍微低一些,我看到咱有相关的api接口,我get信息的时候是空,set的时候会异常
const receiver = image.createImageReceiver(settings.size, image.ImageFormat.JPEG, 8)
const imageReceiverId = await receiver.getReceivingSurfaceId()
this.onImageArrival(receiver)
previewOutputReceiver = cameraManager.createPreviewOutput(imageReceiverId)
创建完 outputReceiver
之后,previewOutputReceiver.getSupportedFrameRates()
得到的数据是空数组,然后设置 previewOutputReceiver.setFrameRate(3, 10)
相机就启动失败,不能正常工作
我用的测试机是 p60 pro,这两个api 接口该如何使用,或者有什么办法可以修改采样频率吗?
更多关于HarmonyOS鸿蒙Next中如何设置camera.PreviewOutput采样率的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
-
预览流也就是previewOutput不支持设置帧率,需要采集可以通过录像流VideoOutput设置系统所支持的帧率和分辨率
-
ImageReceiver是用来采集图片的,采集视频需要AVRecorder,可以配置流的角度rotation,请自行参考相关文档:
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/js-apis-media-V13
更多关于HarmonyOS鸿蒙Next中如何设置camera.PreviewOutput采样率的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,设置camera.PreviewOutput
的采样率可以通过Camera
模块的相关API实现。具体步骤如下:
- 获取Camera实例:首先,使用
CameraManager
获取Camera
实例。 - 创建PreviewOutput:通过
Camera
实例创建PreviewOutput
对象。 - 设置采样率:通过
PreviewOutput
的setPreviewRate
方法设置采样率,参数为每秒的帧数(fps)。
示例代码如下:
import camera from '@ohos.camera';
// 获取CameraManager实例
let cameraManager = camera.getCameraManager();
// 获取相机设备列表
let cameraDevices = cameraManager.getSupportedCameras();
// 选择第一个相机设备
let cameraDevice = cameraDevices[0];
// 创建Camera实例
let cameraInstance = cameraManager.createCamera(cameraDevice);
// 创建PreviewOutput
let previewOutput = cameraInstance.createPreviewOutput();
// 设置采样率为30fps
previewOutput.setPreviewRate(30);
// 开始预览
cameraInstance.startPreview(previewOutput);
在HarmonyOS鸿蒙Next中,设置camera.PreviewOutput
的采样率可以通过配置CameraConfig
来实现。首先,获取CameraManager
实例,然后通过getSupportedCameraConfigs
获取支持的配置。选择适合的CameraConfig
,并设置PreviewOutput
的采样率,最后通过configure
方法应用配置。示例代码如下:
CameraManager cameraManager = getContext().getSystemService(CameraManager.class);
CameraConfig cameraConfig = cameraManager.getSupportedCameraConfigs().get(0);
PreviewOutput previewOutput = new PreviewOutput(surface);
previewOutput.setSampleRate(30); // 设置采样率为30fps
cameraConfig.addPreviewOutput(previewOutput);
cameraManager.configure(cameraConfig);
确保设备支持所选采样率,否则可能抛出异常。