GamepadHapticActuator:playEffect() 方法
playEffect()
方法是 GamepadHapticActuator
接口的一部分,用于使硬件播放特定的振动效果。
语法
js
playEffect(type, params)
参数
type
-
表示所需效果的字符串。可能的值为
"dual-rumble"
和"trigger-rumble"
,其效果可能因硬件类型而异。有关效果类型的更多详细信息,请参阅GamepadHapticActuator.effects
。 params
-
一个对象,用于描述所需的触觉效果。
预期值为
duration
可选-
效果持续时间(以毫秒为单位)。默认为
0
。 startDelay
可选-
开始效果前的延迟时间(以毫秒为单位)。默认为
0
。 strongMagnitude
可选-
低频(强)震动马达的震动强度,归一化为
0.0
到1.0
之间的值。默认为0.0
。 weakMagnitude
可选-
高频(弱)震动马达的震动强度,归一化为
0.0
到1.0
之间的值。默认为0.0
。 leftTrigger
(仅适用于"trigger-rumble"
效果) 可选-
左下前触发器的震动强度,归一化为
0.0
到1.0
之间的值。默认为0.0
。 rightTrigger
(仅适用于"trigger-rumble"
效果) 可选-
右下前触发器的震动强度,归一化为
0.0
到1.0
之间的值。默认为0.0
。
注意:对 playEffect()
的新调用会覆盖之前的正在进行的调用。
返回值
一个 Promise,当效果成功完成时,解析为 "complete"
,如果当前效果被停止或被其他效果替换,则解析为 "preempted"
。
该 Promise 可能会拒绝以下异常类型
InvalidStateError
DOMException
-
当前文档未激活或隐藏。
NotSupportedError
DOMException
-
当前游戏手柄的执行器不支持请求的
type
。 TypeError
DOMException
-
请求的
type
不是有效的效果类型。
示例
js
const gamepad = navigator.getGamepads()[0];
gamepad.vibrationActuator
.playEffect("dual-rumble", {
startDelay: 0,
duration: 200,
weakMagnitude: 1.0,
strongMagnitude: 1.0,
})
.then((result) => console.log(result));
// Should log "complete" if effect successfully runs
规范
规范 |
---|
Gamepad # dom-gamepadhapticactuator-playeffect |
浏览器兼容性
BCD 表格仅在浏览器中加载