@@ -13,6 +13,8 @@ import AcbAwb from "@/components/MusicEdit/AcbAwb";
1313import GenreInput from "@/components/GenreInput" ;
1414import VersionInput from "@/components/VersionInput" ;
1515import { captureException } from "@sentry/vue"
16+ import noJacket from "@/assets/noJacket.webp" ;
17+ import { getUrl } from "@/client/api" ;
1618
1719const Component = defineComponent ( {
1820 setup ( ) {
@@ -40,6 +42,19 @@ const Component = defineComponent({
4042 watch ( ( ) => info . value ?. comment , sync ( 'comment' , api . EditMusicComment ) ) ;
4143 watch ( ( ) => info . value ?. longMusic , sync ( 'longMusic' , api . EditMusicLong ) ) ;
4244
45+ onMounted ( ( ) => {
46+ if ( 'mediaSession' in navigator ) {
47+ navigator . mediaSession . metadata = new MediaMetadata ( {
48+ title : info . value ?. name || '' ,
49+ artist : info . value ?. artist || '' ,
50+ album : genreList . value . find ( genre => genre . id === info . value ?. genreId ) ?. genreName || '' ,
51+ artwork : [
52+ { src : info . value ?. hasJacket ? getUrl ( `GetJacketApi/${ selectedADir . value } /${ info . value ?. id } ?${ ( info . value as any ) . updateTime } ` ) : noJacket , type : 'image/png' } ,
53+ ]
54+ } ) ;
55+ }
56+ } )
57+
4358 return ( ) => info . value && < NForm showFeedback = { false } labelPlacement = "top" disabled = { selectedADir . value === 'A000' } >
4459 < div class = "grid cols-[1fr_12em] gap-5" >
4560 < NFlex vertical class = "relative" >
0 commit comments