add web audio, replaygain, visualizer (#1289)

* add web audio, replaygain, visualizer

* remove volume multiplication in gain

---------

Co-authored-by: Jeff <42182408+jeffvli@users.noreply.github.com>
This commit is contained in:
Kendall Garner
2025-11-30 03:25:12 -08:00
committed by GitHub
parent 8777da9491
commit dd3d05c813
8 changed files with 233 additions and 23 deletions
@@ -27,6 +27,8 @@ interface WebPlayerEngineProps {
onEndedPlayer2: () => void;
onProgressPlayer1: (e: PlayerOnProgressProps) => void;
onProgressPlayer2: (e: PlayerOnProgressProps) => void;
onStartedPlayer1: (player: ReactPlayer) => void;
onStartedPlayer2: (player: ReactPlayer) => void;
playerNum: number;
playerRef: RefObject<null | WebPlayerEngineHandle>;
playerStatus: PlayerStatus;
@@ -52,6 +54,8 @@ export const WebPlayerEngine = (props: WebPlayerEngineProps) => {
onEndedPlayer2,
onProgressPlayer1,
onProgressPlayer2,
onStartedPlayer1,
onStartedPlayer2,
playerNum,
playerRef,
playerStatus,
@@ -158,6 +162,7 @@ export const WebPlayerEngine = (props: WebPlayerEngineProps) => {
onEnded={src1 ? () => onEndedPlayer1() : undefined}
onError={handleOnError(player1Ref, () => onEndedPlayer1())}
onProgress={onProgressPlayer1}
onReady={onStartedPlayer1}
playbackRate={speed || 1}
playing={playerNum === 1 && playerStatus === PlayerStatus.PLAYING}
progressInterval={isTransitioning ? 10 : 250}
@@ -177,6 +182,7 @@ export const WebPlayerEngine = (props: WebPlayerEngineProps) => {
onEnded={src2 ? () => onEndedPlayer2() : undefined}
onError={handleOnError(player2Ref, () => onEndedPlayer2())}
onProgress={onProgressPlayer2}
onReady={onStartedPlayer2}
playbackRate={speed || 1}
playing={playerNum === 2 && playerStatus === PlayerStatus.PLAYING}
progressInterval={isTransitioning ? 10 : 250}