Skip to main content

View as Markdown · AI documentation index

Function: useAudioManager()

useAudioManager(): object

Defined in: packages/core/src/hooks/useAudioManager.ts:56

React hook to access global audio manager state and controls.

This hook provides access to the AudioManager's reactive state (master volume, mute status) and bound control methods.

Returns​

Reactive audio manager state and control methods

disposeAll()​

disposeAll: () => void

Disposes all audio tracks.

Useful for cleanup when shutting down the game.

Returns​

void

Example​

AudioManager.disposeAll();

getAllTracks()​

getAllTracks: () => AudioTrack[]

Gets all registered audio tracks.

Returns​

AudioTrack[]

Array of all audio tracks

Example​

const tracks = AudioManager.getAllTracks();
console.log(`Total tracks: ${tracks.length}`);

getMasterVolume()​

getMasterVolume: () => number

Gets the current master volume.

Returns​

number

The master volume level (0.0 to 1.0)

Example​

const volume = AudioManager.getMasterVolume();

getTrackById()​

getTrackById: (id) => AudioTrack | undefined

Gets an audio track by its ID.

Parameters​

id​

string

The unique identifier of the audio track

Returns​

AudioTrack | undefined

The audio track, or undefined if not found

Example​

const music = AudioManager.getTrackById('bg-music');
if (music) {
music.play();
}

isMuted​

isMuted: boolean = false

masterVolume​

masterVolume: number = 1

muteAll()​

muteAll: () => void

Mutes all audio tracks.

Returns​

void

Example​

AudioManager.muteAll();

pauseAll()​

pauseAll: () => void

Pauses all currently playing audio tracks.

Returns​

void

Example​

AudioManager.pauseAll();

resumeAll()​

resumeAll: () => void

Resumes all paused audio tracks.

Returns​

void

Example​

AudioManager.resumeAll();

setMasterVolume()​

setMasterVolume: (volume) => void

Sets the master volume for all audio tracks.

The master volume is multiplied with each track's individual volume. This does not modify individual track volumes - it applies a global multiplier.

Parameters​

volume​

number

Master volume level (0.0 to 1.0), clamped to valid range

Returns​

void

Example​

AudioManager.setMasterVolume(0.5); // 50% master volume

stopAll()​

stopAll: () => void

Stops all audio tracks.

Returns​

void

Example​

AudioManager.stopAll();

unmuteAll()​

unmuteAll: () => void

Unmutes all audio tracks.

Returns​

void

Example​

AudioManager.unmuteAll();

Example​

import { useAudioManager } from '@react-text-game/core';

function AudioSettingsMenu() {
const audioManager = useAudioManager();

return (
<div>
<h2>Audio Settings</h2>

<label>
Master Volume: {(audioManager.masterVolume * 100).toFixed(0)}%
<input
type="range"
min="0"
max="1"
step="0.01"
value={audioManager.masterVolume}
onChange={(e) => audioManager.setMasterVolume(parseFloat(e.target.value))}
/>
</label>

<button onClick={audioManager.muteAll}>
Mute All
</button>
<button onClick={audioManager.unmuteAll}>
Unmute All
</button>
<button onClick={audioManager.pauseAll}>
Pause All
</button>
<button onClick={audioManager.resumeAll}>
Resume All
</button>

<p>Muted: {audioManager.isMuted ? 'Yes' : 'No'}</p>
<p>Total Tracks: {audioManager.getAllTracks().length}</p>
</div>
);
}