GamepadHapticActuator:playEffect() 方法

playEffect() 方法是 GamepadHapticActuator 接口的一部分,用于使硬件播放特定的振动效果。

语法

js
playEffect(type, params)

参数

type

表示所需效果的字符串。可能的值为 "dual-rumble""trigger-rumble",其效果可能因硬件类型而异。有关效果类型的更多详细信息,请参阅 GamepadHapticActuator.effects

params

一个对象,用于描述所需的触觉效果。

预期值为

duration 可选

效果持续时间(以毫秒为单位)。默认为 0

startDelay 可选

开始效果前的延迟时间(以毫秒为单位)。默认为 0

strongMagnitude 可选

低频(强)震动马达的震动强度,归一化为 0.01.0 之间的值。默认为 0.0

weakMagnitude 可选

高频(弱)震动马达的震动强度,归一化为 0.01.0 之间的值。默认为 0.0

leftTrigger(仅适用于 "trigger-rumble" 效果) 可选

左下前触发器的震动强度,归一化为 0.01.0 之间的值。默认为 0.0

rightTrigger(仅适用于 "trigger-rumble" 效果) 可选

右下前触发器的震动强度,归一化为 0.01.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 表格仅在浏览器中加载

另请参阅