HarmonyOS startVibration 用time模式 没办法连续振动

await vibrator.startVibration({
  type: 'time',
  duration: 1000,
}, {
  id: 0,
  usage: 'alarm'
})

这里等待await之后再去执行会失败,

实际上这个startVibration出来的声明周期是不对的,这个时候底层还没有执行完成振动,接下来继续执行会报错Operation failed

如果sleep 1000的话也不行,需要多冗余一定的时间

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
aquaa

首先startVibration的接口是异步的,没有振动阻塞在那里,振完再返回的这类接口有Promise的方式,参考链接:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-vibrator-V5#vibratorstartvibration9

Operation failed可能是上层sleep和实际振动的时间有误差导致的,由于alarm振动不允许被打断,所以睡眠结束可能alarm还没结束振动,所以再点击振动会报错,如果期望后面的振动可以不受前面已经下发的影响,可以改用其他的usage,usage根据场景选择

参考链接:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-vibrator-V5#usage9

分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS 路由的动画没办法改吗
22浏览 • 1回复 待解决
没办法断点到native c++中
274浏览 • 1回复 待解决
HarmonyOS 振动服务问题
236浏览 • 1回复 待解决
长按实现各类振动效果
933浏览 • 1回复 待解决
手表振动API在哪里啊~ ?
2439浏览 • 1回复 待解决
HarmonyOS 手机静音下能否持续振动
137浏览 • 1回复 待解决
如何实现振动,有人知道吗?
1328浏览 • 2回复 待解决
如何连续获取相机预览流数据
957浏览 • 1回复 待解决
JSUI中TouchMove连续触发问题
3834浏览 • 1回复 待解决
HarmonyOS Profiler TIme 一直是initializing
422浏览 • 1回复 待解决