文档管理中心

微距能力设置(ArkTS)

从API version 19开始,支持设置微距能力。微距能力是指通过光学设计与算法优化,实现近距离对焦并清晰捕捉微小物体细节的相机功能。

开发步骤

详细的API说明请参考Camera

  1. 导入camera接口,接口中提供了相机相关的属性和方法,导入方法如下。

    收起
    自动换行
    深色代码主题
    复制
    1. import { camera } from '@kit.CameraKit';
    2. import { BusinessError } from '@kit.BasicServicesKit';
  2. 通过isMacroSupported接口,查询当前设备是否支持微距能力。

    收起
    自动换行
    深色代码主题
    复制
    1. let isSupported: boolean = photoSession.isMacroSupported();
  3. 通过enableMacro接口,开启或关闭微距能力。

    收起
    自动换行
    深色代码主题
    复制
    1. function EnableMacro(photoSession: camera.PhotoSession): void {
    2. let isSupported: boolean = photoSession.isMacroSupported();
    3. if (isSupported) {
    4. photoSession.enableMacro(true);
    5. }
    6. }

状态监听

从API version 20开始,支持监听微距能力是否发生改变。

注册macroStatusChanged事件监听微距能力变化,事件监听可参考on('macroStatusChanged')

收起
自动换行
深色代码主题
复制
  1. function callback(err: BusinessError, macroStatus: boolean): void {
  2. if (err !== undefined && err.code !== 0) {
  3. console.error(`Callback Error, errorCode: ${err.code}`);
  4. return;
  5. }
  6. console.info(`Macro state: ${macroStatus}`);
  7. }
  8. // 注册回调函数。
  9. function registerMacroStatusChanged(photoSession: camera.PhotoSession): void {
  10. photoSession.on('macroStatusChanged', callback);
  11. }
  12. // 解注册。
  13. function unregisterMacroStatusChanged(photoSession: camera.PhotoSession): void {
  14. photoSession.off('macroStatusChanged');
  15. }
搜索
请输入您想要搜索的关键词