HarmonyOS NEXT鸿蒙开发:vibrator 振动 作者:马育民 • 2024-11-18 07:52 • 阅读:10009 # 说明 [官方指南](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/vibrator-guidelines-V13 "官方指南") [官方API](https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/js-apis-vibrator-V13#vibratorstartvibration9-1 "官方API") 当设备需要设置 **振动** 时,可以调用 `Vibrator` 模块 ### 应用场景 - 设备的按键可以设置不同强度和不同时长的振动 - 闹钟和来电可以设置不同强度和时长的单次或周期振动 ### 需要权限 ``` ohos.permission.VIBRATE ``` # 导入模块 ``` import { vibrator } from '@kit.SensorServiceKit'; ``` # 开始震动 根据指定的振动效果和振动属性触发马达振动。使用callback异步回调。 ``` startVibration(effect: VibrateEffect, attribute: VibrateAttribute, callback: AsyncCallback): void ``` ##### 参数 - effect:类型:VibrateEffect,必填,马达振动效果,支持三种: - attribute:类型:VibrateAttribute,必填,马达振动属性。 - callback:类型:`AsyncCallback`,必填,回调函数,当马达振动成功,`err` 为 `undefined`,否则为错误对象。 ## VibrateEffect ### VibrateTime 对象 按照指定持续时间触发马达振动 属性: - type:必填,值为 `'time'`,按照指定持续时间触发马达振动。 - duration:类型:number,马达持续振动时长, 单位 `ms`。 ### VibratePreset 按照预置振动效果触发马达振动; 属性: - type:必填,值为 `'preset'`,按照预置振动效果触发马达振动。 - effectId:类型:string,必填,预置的振动效果ID。 - count:类型:number,振动的重复次数,默认值为`1`。 - intensity:类型:number,振动调节强度,范围为 `0到100`,默认值为 `100`。若振动效果不支持强度调节或设备不支持时,则按默认强度振动。 ### VibrateFromFile 自定义振动类型,仅部分设备支持,当设备不支持此振动类型时,返回设备不支持错误码。 属性: - type:必填,值为 `'file'`,按照振动配置文件触发马达振动。 - hapticFd:类型:[HapticFileDescriptor](https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/js-apis-vibrator-V13#hapticfiledescriptor10 "HapticFileDescriptor"),必填,振动配置文件的描述符。 # 例子 ``` // 震动 vibrator.startVibration({ type: 'time', duration: 1000 }, { id: 0, usage: 'alarm' }) ``` 原文出处:http://malaoshi.top/show_1GW3tLFlPTm.html