mirror of
https://github.com/ikun0014/lx-music-mobile.git
synced 2025-05-23 22:37:41 +08:00
fix: 下载bug
This commit is contained in:
parent
6c12a4e5a8
commit
95b38c8578
@ -107,14 +107,14 @@ export default forwardRef<OnlineListType, OnlineListProps>(({
|
|||||||
<ListMusicAdd ref={listMusicAddRef} onAdded={() => { hancelExitSelect() }} />
|
<ListMusicAdd ref={listMusicAddRef} onAdded={() => { hancelExitSelect() }} />
|
||||||
<ListMusicMultiAdd ref={listMusicMultiAddRef} onAdded={() => { hancelExitSelect() }} />
|
<ListMusicMultiAdd ref={listMusicMultiAddRef} onAdded={() => { hancelExitSelect() }} />
|
||||||
<MusicDownloadModal ref={musicDownloadModalRef}
|
<MusicDownloadModal ref={musicDownloadModalRef}
|
||||||
onDownloadInfo={(info) => { handelDownload(info.musicInfo, "128k") }} />
|
onDownloadInfo={(info) => { }} />
|
||||||
<ListMenu
|
<ListMenu
|
||||||
ref={listMenuRef}
|
ref={listMenuRef}
|
||||||
onPlay={info => { handlePlay(info.musicInfo) }}
|
onPlay={info => { handlePlay(info.musicInfo) }}
|
||||||
onPlayLater={info => { hancelExitSelect(); handlePlayLater(info.musicInfo, info.selectedList, hancelExitSelect) }}
|
onPlayLater={info => { hancelExitSelect(); handlePlayLater(info.musicInfo, info.selectedList, hancelExitSelect) }}
|
||||||
onCopyName={info => { handleShare(info.musicInfo) }}
|
onCopyName={info => { handleShare(info.musicInfo) }}
|
||||||
onAdd={handleAddMusic}
|
onAdd={handleAddMusic}
|
||||||
onDownload={info => musicDownloadModalRef.current?.show(info)}
|
onDownload={info => musicDownloadModalRef.current?.show(info.musicInfo)}
|
||||||
onDislikeMusic={info => { void handleDislikeMusic(info.musicInfo) }}
|
onDislikeMusic={info => { void handleDislikeMusic(info.musicInfo) }}
|
||||||
/>
|
/>
|
||||||
{/* <LoadingMask ref={loadingMaskRef} /> */}
|
{/* <LoadingMask ref={loadingMaskRef} /> */}
|
||||||
|
@ -9,7 +9,7 @@ import { handelDownload } from './listAction'
|
|||||||
import { getOtherSource } from '@/core/music/utils'
|
import { getOtherSource } from '@/core/music/utils'
|
||||||
|
|
||||||
interface TitleType {
|
interface TitleType {
|
||||||
updateTitle: (musicInfo: SelectInfo['musicInfo']) => void
|
updateTitle: (musicInfo: LX.Music.MusicInfo) => void
|
||||||
}
|
}
|
||||||
const Title = forwardRef<TitleType, {}>((props, ref) => {
|
const Title = forwardRef<TitleType, {}>((props, ref) => {
|
||||||
const [title, setTitle] = useState('')
|
const [title, setTitle] = useState('')
|
||||||
@ -40,11 +40,11 @@ export interface SelectInfo {
|
|||||||
const initSelectInfo = {}
|
const initSelectInfo = {}
|
||||||
|
|
||||||
interface MusicDownloadModalProps {
|
interface MusicDownloadModalProps {
|
||||||
onDownloadInfo: (info: SelectInfo) => void
|
onDownloadInfo: (info: LX.Music.MusicInfo) => void
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface MusicDownloadModalType {
|
export interface MusicDownloadModalType {
|
||||||
show: (listInfo: any) => void
|
show: (info: LX.Music.MusicInfo) => void
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -52,7 +52,7 @@ export default forwardRef<MusicDownloadModalType, MusicDownloadModalProps>(({ on
|
|||||||
const alertRef = useRef<ConfirmAlertType>(null)
|
const alertRef = useRef<ConfirmAlertType>(null)
|
||||||
const titleRef = useRef<TitleType>(null)
|
const titleRef = useRef<TitleType>(null)
|
||||||
const inputRef = useRef<PositionInputType>(null)
|
const inputRef = useRef<PositionInputType>(null)
|
||||||
const selectedInfo = useRef<SelectInfo>(initSelectInfo as SelectInfo)
|
const selectedInfo = useRef<LX.Music.MusicInfo>(initSelectInfo as LX.Music.MusicInfo)
|
||||||
const [selectedQuality, setSelectedQuality] = useState<LX.Quality>("128k");
|
const [selectedQuality, setSelectedQuality] = useState<LX.Quality>("128k");
|
||||||
const [playQualityList, setPlayQualityList] = useState<MusicOption[]>([]);
|
const [playQualityList, setPlayQualityList] = useState<MusicOption[]>([]);
|
||||||
const [visible, setVisible] = useState(false)
|
const [visible, setVisible] = useState(false)
|
||||||
@ -62,13 +62,15 @@ export default forwardRef<MusicDownloadModalType, MusicDownloadModalProps>(({ on
|
|||||||
}
|
}
|
||||||
|
|
||||||
const calcQualitys = () => {
|
const calcQualitys = () => {
|
||||||
|
console.log("calcQualitys");
|
||||||
|
console.log("calcQualitys" + selectedInfo.current.name);
|
||||||
setPlayQualityList([])
|
setPlayQualityList([])
|
||||||
const map = new Map();
|
const map = new Map();
|
||||||
map.set("128k", "标准音质");
|
map.set("128k", "标准音质");
|
||||||
map.set("320k", "高品音质");
|
map.set("320k", "高品音质");
|
||||||
map.set("flac", "无损音质");
|
map.set("flac", "无损音质");
|
||||||
map.set("flac24bit", "Hi-Res音质");
|
map.set("flac24bit", "Hi-Res音质");
|
||||||
const qualitys = selectedInfo.current?.musicInfo.meta.qualitys;
|
const qualitys = selectedInfo.current.meta.qualitys;
|
||||||
|
|
||||||
let qualityMap: QualityMap = {};
|
let qualityMap: QualityMap = {};
|
||||||
for (let index = 0; index < qualitys.length; index++) {
|
for (let index = 0; index < qualitys.length; index++) {
|
||||||
@ -85,7 +87,7 @@ export default forwardRef<MusicDownloadModalType, MusicDownloadModalProps>(({ on
|
|||||||
if (Object.values(qualityMap).length == map.size) {
|
if (Object.values(qualityMap).length == map.size) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
getOtherSource(selectedInfo.current?.musicInfo, true).then(res => {
|
getOtherSource(selectedInfo.current, true).then(res => {
|
||||||
if (res.length == 0) {
|
if (res.length == 0) {
|
||||||
setPlayQualityList(Object.values(qualityMap));
|
setPlayQualityList(Object.values(qualityMap));
|
||||||
return;
|
return;
|
||||||
@ -118,23 +120,26 @@ export default forwardRef<MusicDownloadModalType, MusicDownloadModalProps>(({ on
|
|||||||
}
|
}
|
||||||
|
|
||||||
const handleShow = () => {
|
const handleShow = () => {
|
||||||
|
console.log("handleShow");
|
||||||
|
|
||||||
alertRef.current?.setVisible(true)
|
alertRef.current?.setVisible(true)
|
||||||
requestAnimationFrame(() => {
|
requestAnimationFrame(() => {
|
||||||
titleRef.current?.updateTitle(selectedInfo.current.musicInfo)
|
titleRef.current?.updateTitle(selectedInfo.current)
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
inputRef.current?.focus()
|
inputRef.current?.focus()
|
||||||
}, 300)
|
}, 300)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
useImperativeHandle(ref, () => ({
|
useImperativeHandle(ref, () => ({
|
||||||
show(listInfo) {
|
show(info) {
|
||||||
selectedInfo.current = listInfo
|
console.log("useImperativeHandle");
|
||||||
|
console.log(info);
|
||||||
|
selectedInfo.current = info
|
||||||
if (visible) {
|
if (visible) {
|
||||||
calcQualitys();
|
calcQualitys();
|
||||||
handleShow()
|
handleShow()
|
||||||
}
|
} else {
|
||||||
else {
|
calcQualitys();
|
||||||
setVisible(true)
|
setVisible(true)
|
||||||
requestAnimationFrame(() => {
|
requestAnimationFrame(() => {
|
||||||
handleShow()
|
handleShow()
|
||||||
@ -146,8 +151,7 @@ export default forwardRef<MusicDownloadModalType, MusicDownloadModalProps>(({ on
|
|||||||
const handleDownloadMusic = () => {
|
const handleDownloadMusic = () => {
|
||||||
setSelectedQuality("128k");
|
setSelectedQuality("128k");
|
||||||
alertRef.current?.setVisible(false)
|
alertRef.current?.setVisible(false)
|
||||||
handelDownload(selectedInfo.current?.musicInfo, selectedQuality);
|
handelDownload(selectedInfo.current, selectedQuality);
|
||||||
onDownloadInfo(selectedInfo.current);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
interface MusicOption {
|
interface MusicOption {
|
||||||
|
@ -152,7 +152,7 @@ export default () => {
|
|||||||
<MusicPositionModal ref={musicPositionModalRef}
|
<MusicPositionModal ref={musicPositionModalRef}
|
||||||
onUpdatePosition={(info, postion) => { handleUpdateMusicPosition(postion, info.listId, info.musicInfo, info.selectedList, hancelExitSelect) }} />
|
onUpdatePosition={(info, postion) => { handleUpdateMusicPosition(postion, info.listId, info.musicInfo, info.selectedList, hancelExitSelect) }} />
|
||||||
<MusicDownloadModal ref={musicDownloadModalRef}
|
<MusicDownloadModal ref={musicDownloadModalRef}
|
||||||
onDownloadInfo={(info) => { handelDownload(info.musicInfo, "128k") }} />
|
onDownloadInfo={(info) => { }} />
|
||||||
<ListMenu
|
<ListMenu
|
||||||
ref={listMenuRef}
|
ref={listMenuRef}
|
||||||
onPlay={info => { handlePlay(info.listId, info.index) }}
|
onPlay={info => { handlePlay(info.listId, info.index) }}
|
||||||
@ -160,7 +160,7 @@ export default () => {
|
|||||||
onRemove={info => { hancelExitSelect(); handleRemove(info.listId, info.musicInfo, info.selectedList, hancelExitSelect) }}
|
onRemove={info => { hancelExitSelect(); handleRemove(info.listId, info.musicInfo, info.selectedList, hancelExitSelect) }}
|
||||||
onDislikeMusic={info => { void handleDislikeMusic(info.musicInfo) }}
|
onDislikeMusic={info => { void handleDislikeMusic(info.musicInfo) }}
|
||||||
onCopyName={info => { handleShare(info.musicInfo) }}
|
onCopyName={info => { handleShare(info.musicInfo) }}
|
||||||
onDownload={info => musicDownloadModalRef.current?.show(info)}
|
onDownload={info => musicDownloadModalRef.current?.show(info.musicInfo)}
|
||||||
onAdd={handleAddMusic}
|
onAdd={handleAddMusic}
|
||||||
onMove={handleMoveMusic}
|
onMove={handleMoveMusic}
|
||||||
onEditMetadata={handleEditMetadata}
|
onEditMetadata={handleEditMetadata}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user