mirror of
https://github.com/antebudimir/feishin.git
synced 2026-01-01 18:33:33 +00:00
40 lines
1.1 KiB
TypeScript
40 lines
1.1 KiB
TypeScript
import isElectron from 'is-electron';
|
|
|
|
import { QueueSong } from '/@/shared/types/domain-types';
|
|
|
|
const remote = isElectron() ? window.api.remote : null;
|
|
const mediaSession = navigator.mediaSession;
|
|
|
|
export const updateSong = (song: QueueSong | undefined) => {
|
|
if (mediaSession) {
|
|
let metadata: MediaMetadata;
|
|
|
|
if (song?.id) {
|
|
let artwork: MediaImage[];
|
|
|
|
if (song.imageUrl) {
|
|
const image300 = song.imageUrl
|
|
?.replace(/&size=\d+/, '&size=300')
|
|
.replace(/\?width=\d+/, '?width=300')
|
|
.replace(/&height=\d+/, '&height=300');
|
|
|
|
artwork = [{ sizes: '300x300', src: image300, type: 'image/png' }];
|
|
} else {
|
|
artwork = [];
|
|
}
|
|
|
|
metadata = new MediaMetadata({
|
|
album: song.album ?? '',
|
|
artist: song.artistName,
|
|
artwork,
|
|
title: song.name,
|
|
});
|
|
} else {
|
|
metadata = new MediaMetadata();
|
|
}
|
|
|
|
mediaSession.metadata = metadata;
|
|
}
|
|
|
|
remote?.updateSong(song);
|
|
};
|