diff --git a/.changes/fix-web-audio-context-sample-rate b/.changes/fix-web-audio-context-sample-rate new file mode 100644 index 000000000..51bea3ffa --- /dev/null +++ b/.changes/fix-web-audio-context-sample-rate @@ -0,0 +1 @@ +patch type="fixed" "Web pre-connect audio buffer using wrong sample rate" diff --git a/lib/src/preconnect/audio_frame_capture_web.dart b/lib/src/preconnect/audio_frame_capture_web.dart index 81b276732..a44e9b4eb 100644 --- a/lib/src/preconnect/audio_frame_capture_web.dart +++ b/lib/src/preconnect/audio_frame_capture_web.dart @@ -86,8 +86,8 @@ class AudioFrameCaptureWeb implements AudioFrameCapture { final jsTrack = (track as MediaStreamTrackWeb).jsTrack; final mediaStream = web.MediaStream([jsTrack].toJS); - // 2. Create AudioContext and best-effort resume it because some browsers require a user gesture and may reject or stall resume() - _audioContext = web.AudioContext(); + // 2. Create AudioContext at the requested sample rate and best-effort resume it because some browsers require a user gesture and may reject or stall resume() + _audioContext = web.AudioContext(web.AudioContextOptions(sampleRate: sampleRate.toDouble())); final ctx = _audioContext!; try { await ctx.resume().toDart.timeout(const Duration(seconds: 3));