XRift ワールド向けのグローバル拍手音再生フックです。ボタンを押すと、インスタンス内の全ユーザーに同時に音声が再生されます。
ClapButton/ フォルダをワールドプロジェクトの src/components/ にコピーしてください。
音源ファイル(Applause02-3(Short).mp3)は含まれていません。任意の MP3 を public/ に配置してください。
ContextMenu と組み合わせて使用します。
import { ContextMenu } from './components/ContextMenu'
import { useClapButton } from './components/ClapButton'
export const World = () => {
const clapButton = useClapButton()
return (
<>
<ContextMenu buttons={[clapButton]} />
{/* ... */}
</>
)
}ClapButton/index.tsx 内の Applause02-3(Short).mp3 の部分を変更することで、任意の音源を使用できます。
const audio = new Audio(`${baseUrl}your-sound.mp3`)| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
id |
string |
'clap' |
インスタンスステートのキー識別子。複数使う場合は別々の ID を指定 |
返り値は ContextMenu の buttons 配列にそのまま渡せます。
- ボタンを押すと
useInstanceStateのカウンターをインクリメント → 全ユーザーに同期 - 各ユーザーがカウンターの変化を検知 → それぞれのブラウザでローカル再生
- 参加時の初期値では再生しない(参加後のトリガーのみ反応)
@xrift/world-components(useXRift,useInstanceState)
MIT