GamepadHapticActuator: playEffect() 方法

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

GamepadHapticActuator 接口的 playEffect() 方法会使硬件播放特定的振动效果。

语法

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

浏览器兼容性

另见