尝试修复软件启动时恢复上一次播放的歌曲可能导致软件崩溃的问题

This commit is contained in:
lyswhut 2021-05-24 10:43:46 +08:00
parent 4322a216a9
commit f8b296645a
8 changed files with 11 additions and 9 deletions

View File

@ -60,11 +60,14 @@ const init = () => {
initMusicTools() initMusicTools()
getPlayInfo().then(info => { getPlayInfo().then(info => {
if (!info) return if (!info) return
global.restorePlayInfo = info
if (info.listId != LIST_ID_PLAY_TEMP) { if (info.listId != LIST_ID_PLAY_TEMP) {
info.list = global.allList[info.listId] info.list = global.allList[info.listId]
if (info.list) info.list = info.list.list if (info.list) info.list = info.list.list
} }
if (!info.list || !info.list[info.index]) return
global.restorePlayInfo = info
store.dispatch(playerAction.setList({ store.dispatch(playerAction.setList({
list: { list: {
list: info.list, list: info.list,

View File

@ -1,5 +1,3 @@
### 修复 ### 修复
- 修复手机分享的wy歌单、某些tx、kg歌单无法打开的问题 - 尝试修复软件启动时恢复上一次播放的歌曲可能导致软件崩溃的问题
- 修复打开空的歌单时,点击播放全部会导致应用崩溃的问题
- 修复企鹅音乐搜索歌曲没有结果的问题

View File

@ -20,7 +20,7 @@ export default memo(() => {
const handlePlayAll = useCallback(async() => { const handlePlayAll = useCallback(async() => {
if (!listDetailData.info.name) return if (!listDetailData.info.name) return
const list = await getListDetailAll(selectListInfo.id) const list = await getListDetailAll(selectListInfo.id)
if (!list.length) return // if (!list.length) return
setPlayList({ setPlayList({
list: { list: {
list, list,

View File

@ -2,7 +2,7 @@ import React, { memo } from 'react'
import { View, Text, StyleSheet, ImageBackground } from 'react-native' import { View, Text, StyleSheet, ImageBackground } from 'react-native'
import { AppColors, BorderWidths } from '@/theme' import { AppColors, BorderWidths } from '@/theme'
import { useGetter } from '@/store' import { useGetter } from '@/store'
import ButtonBar from './ButtonBar' import ButtonBar from './ActionBar'
const Header = memo(() => { const Header = memo(() => {
const selectListInfo = useGetter('songList', 'selectListInfo') const selectListInfo = useGetter('songList', 'selectListInfo')

View File

@ -35,7 +35,7 @@ export default () => {
}, [playMusicInfo, setJumpPosition, setNavActiveIndex, setPrevSelectListId]) }, [playMusicInfo, setJumpPosition, setNavActiveIndex, setPrevSelectListId])
useEffect(() => { useEffect(() => {
const url = playMusicInfo ? playMusicInfo.musicInfo.img : null const url = playMusicInfo && playMusicInfo.musicInfo ? playMusicInfo.musicInfo.img : null
if (imgUrl == url) return if (imgUrl == url) return
setImgUrl(url) setImgUrl(url)
// eslint-disable-next-line react-hooks/exhaustive-deps // eslint-disable-next-line react-hooks/exhaustive-deps

View File

@ -8,7 +8,7 @@ export default () => {
const downloadFileName = useGetter('common', 'downloadFileName') const downloadFileName = useGetter('common', 'downloadFileName')
const playMusicInfo = useGetter('player', 'playMusicInfo') const playMusicInfo = useGetter('player', 'playMusicInfo')
let title = '^-^' let title = '^-^'
if (playMusicInfo) { if (playMusicInfo && playMusicInfo.musicInfo) {
title = downloadFileName.replace('歌手', playMusicInfo.musicInfo.singer).replace('歌名', playMusicInfo.musicInfo.name) title = downloadFileName.replace('歌手', playMusicInfo.musicInfo.singer).replace('歌名', playMusicInfo.musicInfo.name)
} }
// console.log(playMusicInfo) // console.log(playMusicInfo)

View File

@ -515,6 +515,7 @@ export const getLrc = musicInfo => async(dispatch, getState) => {
} }
export const setList = ({ list, index }) => (dispatch, getState) => { export const setList = ({ list, index }) => (dispatch, getState) => {
if (!(list && list.list && list.list[index])) return
dispatch(setListInfo(list)) dispatch(setListInfo(list))
const state = getState() const state = getState()

View File

@ -1,5 +1,5 @@
import { createSelector } from 'reselect' import { createSelector } from 'reselect'
import { LIST_ID_PLAY_TEMP, LIST_ID_PLAY_LATER } from '@/config/constant' import { LIST_ID_PLAY_LATER } from '@/config/constant'
// sourceInfo(state, getters, rootState, { sourceNames }) { // sourceInfo(state, getters, rootState, { sourceNames }) {