49 lines
1.4 KiB
TypeScript
49 lines
1.4 KiB
TypeScript
import { getPlayInfo } from '@renderer/utils/ipc'
|
|
import music from '@renderer/utils/musicSdk'
|
|
import { log } from '@common/utils'
|
|
import { getListMusics, getUserLists, registerAction } from '@renderer/store/list/action'
|
|
|
|
|
|
import useInitUserApi from './useInitUserApi'
|
|
import { play, playList } from '@renderer/core/player'
|
|
import { onBeforeUnmount } from '@common/utils/vueTools'
|
|
import { appSetting } from '@renderer/store/setting'
|
|
|
|
const initPrevPlayInfo = async() => {
|
|
const info = await getPlayInfo()
|
|
window.lx.restorePlayInfo = null
|
|
if (!info?.listId || info.index < 0) return
|
|
const list = await getListMusics(info.listId)
|
|
if (!list[info.index]) return
|
|
window.lx.restorePlayInfo = info
|
|
playList(info.listId, info.index)
|
|
|
|
if (appSetting['player.startupAutoPlay']) setTimeout(play)
|
|
}
|
|
|
|
export default () => {
|
|
const initUserApi = useInitUserApi()
|
|
|
|
let unregister: null | (() => void) = null
|
|
|
|
onBeforeUnmount(() => {
|
|
if (unregister) unregister()
|
|
})
|
|
|
|
return async() => {
|
|
await Promise.all([
|
|
initUserApi(), // 自定义API
|
|
]).catch(err => {
|
|
log.error(err)
|
|
})
|
|
void music.init() // 初始化音乐sdk
|
|
unregister = registerAction((ids) => {
|
|
window.app_event.myListUpdate(ids)
|
|
})
|
|
window.lxData.userLists = await getUserLists() // 获取用户列表
|
|
await initPrevPlayInfo().catch(err => {
|
|
log.error(err)
|
|
}) // 初始化上次的歌曲播放信息
|
|
}
|
|
}
|