1# Interface (Zoom) 2<!--Kit: Camera Kit--> 3<!--Subsystem: Multimedia--> 4<!--Owner: @qano--> 5<!--Designer: @leo_ysl--> 6<!--Tester: @xchaosioda--> 7<!--Adviser: @zengyawen--> 8 9> **说明:** 10> 11> - 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 12> - 本Interface首批接口从API version 11开始支持。 13 14Zoom 继承自 [ZoomQuery](arkts-apis-camera-ZoomQuery.md)。 15 16变焦类,对设备变焦操作。 17 18## 导入模块 19 20```ts 21import { camera } from '@kit.CameraKit'; 22``` 23 24## setZoomRatio<sup>11+</sup> 25 26setZoomRatio(zoomRatio: number): void 27 28设置变焦比,变焦精度最高为小数点后两位,如果设置超过支持的精度范围,则只保留精度范围内数值。 29 30**原子化服务API:** 从API version 19开始,该接口支持在原子化服务中使用。 31 32**系统能力:** SystemCapability.Multimedia.Camera.Core 33 34**参数:** 35 36| 参数名 | 类型 | 必填 | 说明 | 37| --------- | -------------------- | ---- |---------------------------------------------------------------------------------------------------------------------------------| 38| zoomRatio | number | 是 | 可变焦距比,通过[getZoomRatioRange](arkts-apis-camera-ZoomQuery.md#getzoomratiorange11)获取支持的变焦范围,如果设置超过支持范围的值,则只保留精度范围内数值。<br>设置可变焦距比到底层生效需要一定时间,获取正确设置的可变焦距比需要等待1~2帧的时间。 | 39 40**错误码:** 41 42以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 43 44| 错误码ID | 错误信息 | 45| --------------- | --------------- | 46| 7400103 | Session not config. | 47 48**示例:** 49 50```ts 51import { BusinessError } from '@kit.BasicServicesKit'; 52 53function setZoomRatio(photoSession: camera.PhotoSession, zoomRatioRange: Array<number>): void { 54 if (zoomRatioRange === undefined || zoomRatioRange.length <= 0) { 55 return; 56 } 57 let zoomRatio = zoomRatioRange[0]; 58 try { 59 photoSession.setZoomRatio(zoomRatio); 60 } catch (error) { 61 // 失败返回错误码error.code并处理。 62 let err = error as BusinessError; 63 console.error(`The setZoomRatio call failed. error code: ${err.code}`); 64 } 65} 66``` 67 68## getZoomRatio<sup>11+</sup> 69 70getZoomRatio(): number 71 72获取当前的变焦比。 73 74**原子化服务API:** 从API version 19开始,该接口支持在原子化服务中使用。 75 76**系统能力:** SystemCapability.Multimedia.Camera.Core 77 78**返回值:** 79 80| 类型 | 说明 | 81| ---------- | ----------------------------- | 82| number | 获取当前的变焦比结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](arkts-apis-camera-e.md#cameraerrorcode)。 | 83 84**错误码:** 85 86以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 87 88| 错误码ID | 错误信息 | 89| --------------- | --------------- | 90| 7400103 | Session not config. | 91| 7400201 | Camera service fatal error. | 92 93**示例:** 94 95```ts 96import { BusinessError } from '@kit.BasicServicesKit'; 97 98function getZoomRatio(photoSession: camera.PhotoSession): number { 99 const invalidValue: number = -1; 100 let zoomRatio: number = invalidValue; 101 try { 102 zoomRatio = photoSession.getZoomRatio(); 103 } catch (error) { 104 // 失败返回错误码error.code并处理。 105 let err = error as BusinessError; 106 console.error(`The getZoomRatio call failed. error code: ${err.code}`); 107 } 108 return zoomRatio; 109} 110``` 111 112## setSmoothZoom<sup>11+</sup> 113 114setSmoothZoom(targetRatio: number, mode?: SmoothZoomMode): void 115 116触发平滑变焦。 117 118**原子化服务API:** 从API version 19开始,该接口支持在原子化服务中使用。 119 120**系统能力:** SystemCapability.Multimedia.Camera.Core 121 122**参数:** 123 124| 参数名 | 类型 | 必填 | 说明 | 125| ------------ | -------------- | ---- | ----------------- | 126| targetRatio | number | 是 | 目标值。通过[getZoomRatioRange](arkts-apis-camera-ZoomQuery.md#getzoomratiorange11)获取支持的变焦范围,如果设置超过支持范围的值,则只保留精度范围内数值。 | 127| mode | [SmoothZoomMode](arkts-apis-camera-e.md#smoothzoommode11) | 否 | 平滑变焦模式。默认为0。 | 128 129**示例:** 130 131```ts 132import { BusinessError } from '@kit.BasicServicesKit'; 133 134function setSmoothZoom(sessionExtendsZoom: camera.Zoom, targetZoomRatio: number, mode: camera.SmoothZoomMode): void { 135 sessionExtendsZoom.setSmoothZoom(targetZoomRatio, mode); 136} 137``` 138