Commit Graph

4 Commits

Author SHA1 Message Date
MythEclipse
638d5fc005 debug: add logging to AudioData playback
- Log frame count, channels, sample rate from AudioData
- Log destination channel size before copyTo
- Identify frame count mismatch issue
2026-05-13 22:19:25 +07:00
MythEclipse
9066e5b1f2 fix: use Float32Array intermediate for AudioData.copyTo
- AudioData.copyTo requires destination Float32Array, not AudioBuffer channel
- Create temp Float32Array per channel, copyTo into it, then set into AudioBuffer
- Properly handle 48kHz stereo Opus output to AudioContext
2026-05-13 22:17:43 +07:00
MythEclipse
26efaa9e4d fix: correct WebCodecs AudioData.copyTo API and decoder lifecycle
- AudioData.copyTo requires planeIndex parameter per channel
- Check isListening state before decode to prevent closed decoder errors
- Properly close decoder when leaving listen mode
- Queue packets if decoder not ready yet
2026-05-13 22:15:30 +07:00
MythEclipse
25dbd8413b feat: implement WebCodecs Opus decode for browser listen
- Add broadcastOpusToWeb to PcmBroadcaster interface for raw Opus packets
- Server broadcasts Opus frames with mode byte (1) + user hash + packet data
- Browser detects packet mode: mode=1 for Opus, mode=0 for legacy PCM
- Implement WebCodecs AudioDecoder for Opus decoding in browser
- Keep existing PCM playback as fallback for compatibility
- Show error if WebCodecs unsupported
- Fixes listen feature under Bun where native Opus decode unavailable
2026-05-13 22:13:03 +07:00