Files
Helldivers-app-movil/.claude/agent-memory/java21-android-legacy-builder/soundmanager_pattern.md
2026-04-14 22:59:04 +02:00

49 lines
1.3 KiB
Markdown

---
name: SoundManager Pattern
description: SoundPool implementation for low-latency audio on legacy Android
type: reference
---
## SoundPool Implementation for Galaxy S3
**Why:** MediaPlayer has too much latency for UI sounds. SoundPool is designed for low-latency playback.
**How to apply:**
```java
public class SoundManager {
private static final int MAX_STREAMS = 8;
private SoundPool soundPool;
private Map<Integer, Integer> soundMap;
private void initializeSoundPool(Context context) {
soundMap = new HashMap<>();
if (Build.VERSION.SDK_INT >= 21) {
soundPool = new SoundPool.Builder()
.setMaxStreams(MAX_STREAMS)
.build();
} else {
// Legacy constructor for API 18-20
soundPool = new SoundPool(MAX_STREAMS, AudioManager.STREAM_MUSIC, 0);
}
}
public void playButtonClick() {
if (loaded && soundPool != null) {
Integer soundId = soundMap.get(SOUND_BUTTON);
if (soundId != null) {
soundPool.play(soundId, 0.7f, 0.7f, 1, 0, 1.0f);
}
}
}
}
```
### Key points:
- Use application context to avoid leaks
- Implement as singleton
- Release resources in onDestroy
- Support both legacy and modern SoundPool APIs
- Use short OGG files (under 50KB)