我在Ionic 3应用程序中有一个CameraPreview,我正在设置参数:闪光开/关,对焦模式,色彩效果等。问题是这些只能在CameraPreview对象设置时设置已初始化并显示相机图像。所有返回设备参数的方法都是如此。
据说对象的方法正在返回Promises,但它们无法正常工作。我有两种不同的手机用于测试,三星J120搭载Android 6.0.1,摩托罗拉Moto G搭载4.4.4。在Motorola上,以下代码正常工作,摄像机参数在相机初始化后设置。在三星上它失败并显示错误消息“No camera”。
那么这里有什么问题? setFlashMode
块会抛出错误,因为相机尚未运行。不要相信官方文档,它说setFlashMode
需要回调参数。它没有。
this.cameraPreview.startCamera(cameraPreviewOpts)
.then(
() => console.log('Camera started.'),
(error) => console.log('Camera error: ', err)
)
// show camera ----------------------------------------
.then(
() => {
this.cameraPreview.show()
.then(
() => console.log('Camera showing'),
(error) => console.log('Error showing camera: ', err)
)
})
// set flash ----------------------------------------
.then(
() => {
this.cameraPreview.setFlashMode('on')
.then(
() => console.log('Flash mode set OK'),
(error) => console.log('Error setting flash mode: ', error)
)
})