Skip to content

N-JELLY/XRift_ClapButton

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 

Repository files navigation

XRift ClapButton

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`)

API

useClapButton(id?: string): ClapButtonConfig

パラメーター デフォルト 説明
id string 'clap' インスタンスステートのキー識別子。複数使う場合は別々の ID を指定

返り値は ContextMenubuttons 配列にそのまま渡せます。

仕組み

  1. ボタンを押すと useInstanceState のカウンターをインクリメント → 全ユーザーに同期
  2. 各ユーザーがカウンターの変化を検知 → それぞれのブラウザでローカル再生
  3. 参加時の初期値では再生しない(参加後のトリガーのみ反応)

依存関係

  • @xrift/world-componentsuseXRift, useInstanceState

ライセンス

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors