[enhancement]: support viewing current/setting current time in remote

This commit is contained in:
Kendall Garner 2024-08-24 13:26:45 -07:00
parent b347b794b9
commit 5b2977e5e8
No known key found for this signature in database
GPG key ID: 18D2767419676C87
9 changed files with 61 additions and 13 deletions

View file

@ -131,16 +131,15 @@ export const CenterControls = ({ playersRef }: CenterControlsProps) => {
const formattedTime = formatDuration(currentTime * 1000 || 0);
useEffect(() => {
let interval: any;
let interval: ReturnType<typeof setInterval>;
if (status === PlayerStatus.PLAYING && !isSeeking) {
if (!isElectron() || playbackType === PlaybackType.WEB) {
// Update twice a second for slightly better performance
interval = setInterval(() => {
setCurrentTime(currentPlayerRef.getCurrentTime());
}, 1000);
}, 500);
}
} else {
clearInterval(interval);
}
return () => clearInterval(interval);

View file

@ -669,11 +669,11 @@ export const useCenterControls = (args: { playersRef: any }) => {
]);
useEffect(() => {
if (utils?.isLinux()) {
if (remote) {
const unsubCurrentTime = usePlayerStore.subscribe(
(state) => state.current.time,
(time) => {
mpris?.updatePosition(time);
remote.updatePosition(time);
},
);

View file

@ -212,6 +212,7 @@ export type GridCardData = {
};
export type SongState = {
position?: number;
repeat?: PlayerRepeat;
shuffle?: boolean;
song?: QueueSong;