mirror of
https://github.com/jeffvli/feishin.git
synced 2026-07-28 21:36:36 +02:00
trigger stop event on queue end
This commit is contained in:
@@ -276,10 +276,21 @@ export const MpvPlayerEngine = (props: MpvPlayerEngineProps) => {
|
||||
handleMpvAutoNext(transcode);
|
||||
};
|
||||
|
||||
const handleTrackEnded = () => {
|
||||
const { player } = usePlayerStore.getState();
|
||||
if (player.status !== PlayerStatus.PLAYING) {
|
||||
return;
|
||||
}
|
||||
|
||||
mediaAutoNext();
|
||||
};
|
||||
|
||||
mpvPlayerListener.rendererAutoNext(handleOnAutoNext);
|
||||
mpvPlayerListener.rendererTrackEnded(handleTrackEnded);
|
||||
|
||||
return () => {
|
||||
ipc?.removeAllListeners('renderer-player-auto-next');
|
||||
ipc?.removeAllListeners('renderer-player-track-ended');
|
||||
};
|
||||
}, [mediaAutoNext, onEnded, transcode]);
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ import {
|
||||
usePlayerData,
|
||||
usePlayerMuted,
|
||||
usePlayerProperties,
|
||||
usePlayerStoreBase,
|
||||
usePlayerVolume,
|
||||
} from '/@/renderer/store';
|
||||
import { PlayerStatus, PlayerStyle } from '/@/shared/types/types';
|
||||
@@ -153,7 +154,13 @@ export function WaveSurferPlayer() {
|
||||
|
||||
promise.then(() => {
|
||||
playerRef.current?.player1()?.ref?.pause();
|
||||
playerRef.current?.setVolume(volume);
|
||||
|
||||
const currentStatus = usePlayerStoreBase.getState().player.status;
|
||||
if (currentStatus !== PlayerStatus.PLAYING) {
|
||||
playerRef.current?.pause();
|
||||
} else {
|
||||
playerRef.current?.setVolume(volume);
|
||||
}
|
||||
setIsTransitioning(false);
|
||||
});
|
||||
}, [mediaAutoNext, volume]);
|
||||
@@ -166,7 +173,13 @@ export function WaveSurferPlayer() {
|
||||
|
||||
promise.then(() => {
|
||||
playerRef.current?.player2()?.ref?.pause();
|
||||
playerRef.current?.setVolume(volume);
|
||||
|
||||
const currentStatus = usePlayerStoreBase.getState().player.status;
|
||||
if (currentStatus !== PlayerStatus.PLAYING) {
|
||||
playerRef.current?.pause();
|
||||
} else {
|
||||
playerRef.current?.setVolume(volume);
|
||||
}
|
||||
setIsTransitioning(false);
|
||||
});
|
||||
}, [mediaAutoNext, volume]);
|
||||
|
||||
@@ -238,7 +238,7 @@ export function WebPlayer() {
|
||||
promise.then(() => {
|
||||
playerRef.current?.player1()?.ref?.getInternalPlayer().pause();
|
||||
|
||||
// If mediaAutoNext resulted in a paused state (e.g. end of queue,
|
||||
// If mediaAutoNext resulted in a stopped/paused state (e.g. end of queue,
|
||||
// or pauseOnNextSongEnd flag), stop all audio instead of restoring volume.
|
||||
const currentStatus = usePlayerStoreBase.getState().player.status;
|
||||
if (currentStatus !== PlayerStatus.PLAYING) {
|
||||
|
||||
Reference in New Issue
Block a user