add configuration for audio status fade

This commit is contained in:
jeffvli
2025-12-02 16:58:55 -08:00
parent bc5d0cf994
commit cab16b0893
5 changed files with 58 additions and 12 deletions
@@ -27,7 +27,7 @@ export function MpvPlayer() {
const { speed } = usePlayerProperties();
const isMuted = usePlayerMuted();
const volume = usePlayerVolume();
const { transcode } = usePlaybackSettings();
const { audioFadeOnStatusChange, transcode } = usePlaybackSettings();
const [localPlayerStatus, setLocalPlayerStatus] = useState<PlayerStatus>(status);
const [isTransitioning, setIsTransitioning] = useState(false);
@@ -106,10 +106,20 @@ export function MpvPlayer() {
},
onPlayerStatus: async (properties) => {
const status = properties.status;
if (status === PlayerStatus.PAUSED) {
fadeAndSetStatus(volume, 0, PLAY_PAUSE_FADE_DURATION, PlayerStatus.PAUSED);
} else if (status === PlayerStatus.PLAYING) {
fadeAndSetStatus(0, volume, PLAY_PAUSE_FADE_DURATION, PlayerStatus.PLAYING);
if (audioFadeOnStatusChange) {
if (status === PlayerStatus.PAUSED) {
fadeAndSetStatus(volume, 0, PLAY_PAUSE_FADE_DURATION, PlayerStatus.PAUSED);
} else if (status === PlayerStatus.PLAYING) {
fadeAndSetStatus(0, volume, PLAY_PAUSE_FADE_DURATION, PlayerStatus.PLAYING);
}
} else {
if (status === PlayerStatus.PAUSED) {
playerRef.current?.setVolume(0);
setLocalPlayerStatus(PlayerStatus.PAUSED);
} else if (status === PlayerStatus.PLAYING) {
playerRef.current?.setVolume(volume);
setLocalPlayerStatus(PlayerStatus.PLAYING);
}
}
},
onPlayerVolume: (properties) => {
@@ -117,7 +127,7 @@ export function MpvPlayer() {
playerRef.current?.setVolume(volume);
},
},
[volume, fadeAndSetStatus],
[volume, fadeAndSetStatus, audioFadeOnStatusChange],
);
// Cleanup fade interval on unmount