From 80c6fa320186b55d1270f279206aa465fbb4b154 Mon Sep 17 00:00:00 2001 From: Vanilagy <1696106+Vanilagy@users.noreply.github.com> Date: Mon, 11 Aug 2025 01:51:20 +0200 Subject: [PATCH] Fall back to webkitAudioContext --- examples/media-player/media-player.ts | 3 +++ src/media-source.ts | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/examples/media-player/media-player.ts b/examples/media-player/media-player.ts index a7a79a6..93912bd 100644 --- a/examples/media-player/media-player.ts +++ b/examples/media-player/media-player.ts @@ -132,6 +132,9 @@ const initMediaPlayer = async (file: File) => { warningElement.textContent = problemMessage; } + // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access + const AudioContext = window.AudioContext || (window as any).webkitAudioContext; + // We must create the audio context with the matching sample rate for correct acoustic results // (especially for low-sample rate files) audioContext = new AudioContext({ sampleRate: audioTrack?.sampleRate }); diff --git a/src/media-source.ts b/src/media-source.ts index 22ff4e7..2ae14db 100644 --- a/src/media-source.ts +++ b/src/media-source.ts @@ -1446,6 +1446,10 @@ export class MediaStreamAudioTrackSource extends AudioSource { }); } else { // Let's fall back to an AudioContext approach + + // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access + const AudioContext = window.AudioContext || (window as any).webkitAudioContext; + this._audioContext = new AudioContext({ sampleRate: this._track.getSettings().sampleRate }); const sourceNode = this._audioContext.createMediaStreamSource(new MediaStream([this._track])); this._scriptProcessorNode = this._audioContext.createScriptProcessor(4096);