refreshPoolsAudioContext method

Future<void> refreshPoolsAudioContext()

Rebuild all pools so they inherit the channel’s current AudioContext. Useful after calling setAudioContext(...) at runtime.

Recreates each pool with its original source, preserving each pool’s minPlayers/maxPlayers as previously created.

Implementation

Future<void> refreshPoolsAudioContext() async {
  if (_pools.isEmpty) return;

  final entries = _pools.entries.toList();
  _pools.clear();

  for (final e in entries) {
    final old = e.value;
    final source = old.source;          // exposed by your AudioPool
    final maxPlayers = old.maxPlayers;
    final minPlayers = old.minPlayers;

    await old.dispose();

    final rebuilt = await AudioPool.create(
      source: source,
      maxPlayers: maxPlayers,
      minPlayers: minPlayers,
      audioContext: currentAudioContext,
    );

    _pools[e.key] = rebuilt;
  }
}