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

瀏覽器相容性

另見