Skip to content

Commit d386795

Browse files
committed
Fix enhanced audio volume sync with user interaction
1 parent c52a5b3 commit d386795

1 file changed

Lines changed: 13 additions & 2 deletions

File tree

apps/web/app/s/[videoId]/_components/video/media-player.tsx

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2886,6 +2886,17 @@ function EnhancedAudioSync({
28862886
enhancedAudioEnabled,
28872887
}: EnhancedAudioSyncProps) {
28882888
const mediaVolume = useMediaSelector((state) => state.mediaVolume ?? 1);
2889+
const hasUserInteractedRef = React.useRef(false);
2890+
const [effectiveVolume, setEffectiveVolume] = React.useState(1);
2891+
2892+
React.useEffect(() => {
2893+
if (mediaVolume > 0) {
2894+
hasUserInteractedRef.current = true;
2895+
setEffectiveVolume(mediaVolume);
2896+
} else if (hasUserInteractedRef.current) {
2897+
setEffectiveVolume(mediaVolume);
2898+
}
2899+
}, [mediaVolume]);
28892900

28902901
const syncEnhancedAudio = React.useCallback(() => {
28912902
if (!enhancedAudioRef.current || !videoRef.current) return;
@@ -2941,7 +2952,7 @@ function EnhancedAudioSync({
29412952

29422953
if (enhancedAudioEnabled) {
29432954
video.muted = true;
2944-
audio.volume = mediaVolume;
2955+
audio.volume = effectiveVolume;
29452956
syncEnhancedAudio();
29462957
if (!video.paused) {
29472958
audio.play().catch(() => {});
@@ -2952,7 +2963,7 @@ function EnhancedAudioSync({
29522963
}
29532964
}, [
29542965
enhancedAudioEnabled,
2955-
mediaVolume,
2966+
effectiveVolume,
29562967
syncEnhancedAudio,
29572968
videoRef,
29582969
enhancedAudioRef,

0 commit comments

Comments
 (0)