Skip to main content

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>
);
}