From 99197e85fe169307d38a3a1361a53e220c61d5f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=B2=81=E6=A0=91=E4=BA=BA?= Date: Tue, 5 Sep 2023 01:34:42 +0100 Subject: [PATCH 1/3] feat: integrate FAQ to webapp --- src/components/AppRoot.tsx | 10 +++- src/components/HelpText/Header3.tsx | 26 ++++++++++ src/components/HelpText/Header4.tsx | 16 ++++++ src/components/HelpText/HiWord.tsx | 9 ++++ src/components/HelpText/VQuote.tsx | 13 +++++ src/components/ProjectIssue.tsx | 17 +++++++ src/faq/KuwoFAQ.tsx | 50 +++++++++++++++++++ src/faq/OtherFAQ.tsx | 28 +++++++++++ src/faq/QQMusicFAQ.tsx | 40 +++++++++++++++ src/faq/SegmentAddKeyDropdown.tsx | 25 ++++++++++ src/faq/SegmentKeyImportInstructions.tsx | 44 ++++++++++++++++ src/faq/SegmentTopNavSettings.tsx | 9 ++++ src/faq/SegmentTryOfficialPlayer.tsx | 12 +++++ .../panels/KWMv2/KWMv2AllInstructions.tsx | 25 ++++++++++ .../settings/panels/PanelKWMv2Key.tsx | 23 +-------- .../settings/panels/PanelQMCv2Key.tsx | 30 +---------- .../panels/QMCv2/QMCv2AllInstructions.tsx | 32 ++++++++++++ src/tabs/FaqTab.tsx | 21 ++++++++ 18 files changed, 380 insertions(+), 50 deletions(-) create mode 100644 src/components/HelpText/Header3.tsx create mode 100644 src/components/HelpText/Header4.tsx create mode 100644 src/components/HelpText/HiWord.tsx create mode 100644 src/components/HelpText/VQuote.tsx create mode 100644 src/components/ProjectIssue.tsx create mode 100644 src/faq/KuwoFAQ.tsx create mode 100644 src/faq/OtherFAQ.tsx create mode 100644 src/faq/QQMusicFAQ.tsx create mode 100644 src/faq/SegmentAddKeyDropdown.tsx create mode 100644 src/faq/SegmentKeyImportInstructions.tsx create mode 100644 src/faq/SegmentTopNavSettings.tsx create mode 100644 src/faq/SegmentTryOfficialPlayer.tsx create mode 100644 src/features/settings/panels/KWMv2/KWMv2AllInstructions.tsx create mode 100644 src/features/settings/panels/QMCv2/QMCv2AllInstructions.tsx create mode 100644 src/tabs/FaqTab.tsx diff --git a/src/components/AppRoot.tsx b/src/components/AppRoot.tsx index e205487..a457092 100644 --- a/src/components/AppRoot.tsx +++ b/src/components/AppRoot.tsx @@ -1,5 +1,5 @@ import { useEffect } from 'react'; -import { MdSettings, MdHome } from 'react-icons/md'; +import { MdSettings, MdHome, MdQuestionAnswer } from 'react-icons/md'; import { ChakraProvider, Tabs, TabList, TabPanels, Tab, TabPanel, Icon, chakra } from '@chakra-ui/react'; import { MainTab } from '~/tabs/MainTab'; @@ -10,6 +10,7 @@ import { theme } from '~/theme'; import { persistSettings } from '~/features/settings/persistSettings'; import { setupStore } from '~/store'; import { Footer } from '~/components/Footer'; +import { FaqTab } from '~/tabs/FaqTab'; // Private to this file only. const store = setupStore(); @@ -30,6 +31,10 @@ export function AppRoot() { 设置 + + + 问答 + @@ -39,6 +44,9 @@ export function AppRoot() { + + + diff --git a/src/components/HelpText/Header3.tsx b/src/components/HelpText/Header3.tsx new file mode 100644 index 0000000..67e1caf --- /dev/null +++ b/src/components/HelpText/Header3.tsx @@ -0,0 +1,26 @@ +import { Heading } from '@chakra-ui/react'; +import React from 'react'; + +export interface Header3Props { + children: React.ReactNode; + id?: string; + className?: string; +} + +export function Header3({ children, className, id }: Header3Props) { + return ( + + {children} + + ); +} diff --git a/src/components/HelpText/Header4.tsx b/src/components/HelpText/Header4.tsx new file mode 100644 index 0000000..f2b8deb --- /dev/null +++ b/src/components/HelpText/Header4.tsx @@ -0,0 +1,16 @@ +import { Heading } from '@chakra-ui/react'; +import React from 'react'; + +export interface Header4Props { + children: React.ReactNode; + id?: string; + className?: string; +} + +export function Header4({ children, className, id }: Header4Props) { + return ( + + {children} + + ); +} diff --git a/src/components/HelpText/HiWord.tsx b/src/components/HelpText/HiWord.tsx new file mode 100644 index 0000000..54bee0f --- /dev/null +++ b/src/components/HelpText/HiWord.tsx @@ -0,0 +1,9 @@ +import { Mark } from '@chakra-ui/react'; + +export function HiWord({ children }: { children: React.ReactNode }) { + return ( + + {children} + + ); +} diff --git a/src/components/HelpText/VQuote.tsx b/src/components/HelpText/VQuote.tsx new file mode 100644 index 0000000..274637c --- /dev/null +++ b/src/components/HelpText/VQuote.tsx @@ -0,0 +1,13 @@ +import { chakra, css } from '@chakra-ui/react'; + +const cssUnselectable = css({ pointerEvents: 'none', userSelect: 'none' }); + +export function VQuote({ children }: { children: React.ReactNode }) { + return ( + <> + + {children} + + + ); +} diff --git a/src/components/ProjectIssue.tsx b/src/components/ProjectIssue.tsx new file mode 100644 index 0000000..e56055a --- /dev/null +++ b/src/components/ProjectIssue.tsx @@ -0,0 +1,17 @@ +export interface ProjectIssueProps { + id: number | string; + title?: string; +} + +export function ProjectIssue({ id, title }: ProjectIssueProps) { + return ( + + {`#${id}`} + {title && ` - ${title}`} + + ); +} diff --git a/src/faq/KuwoFAQ.tsx b/src/faq/KuwoFAQ.tsx new file mode 100644 index 0000000..c955de1 --- /dev/null +++ b/src/faq/KuwoFAQ.tsx @@ -0,0 +1,50 @@ +import { Alert, AlertIcon, Container, List, ListItem, Text, VStack, chakra } from '@chakra-ui/react'; +import { Header4 } from '~/components/HelpText/Header4'; +import { VQuote } from '~/components/HelpText/VQuote'; +import { SegmentTryOfficialPlayer } from './SegmentTryOfficialPlayer'; +import { HiWord } from '~/components/HelpText/HiWord'; +import { KWMv2AllInstructions } from '~/features/settings/panels/KWMv2/KWMv2AllInstructions'; +import { SegmentKeyImportInstructions } from './SegmentKeyImportInstructions'; + +export function KuwoFAQ() { + return ( + <> + 解锁失败 + + + + + + + 2、检查您的平台 + + + 日前,仅手机客户端下载的 + + 至臻全景声 + + 及 + + 至臻母带 + + {'音质的音乐文件采用新版加密。'} + + 其他音质目前不需要提取密钥。 + PC平台暂未推出使用新版加密的音质。 + + + + + + Android 用户提取密钥需要 root 权限,或注入文件提供器。 + 请注意:项目组不提倡使用第三方修改版应用亦不会提供,使用前请自行评估风险。 + + + + + } /> + + + + ); +} diff --git a/src/faq/OtherFAQ.tsx b/src/faq/OtherFAQ.tsx new file mode 100644 index 0000000..f044698 --- /dev/null +++ b/src/faq/OtherFAQ.tsx @@ -0,0 +1,28 @@ +import { ExternalLinkIcon } from '@chakra-ui/icons'; +import { Link, Text } from '@chakra-ui/react'; +import { Header4 } from '~/components/HelpText/Header4'; +import { ProjectIssue } from '~/components/ProjectIssue'; + +export function OtherFAQ() { + return ( + <> + 解密后没有封面等信息 + 该项目进行解密处理。如果加密前的资源没有内嵌元信息或封面,解密的文件也没有。 + 请使用第三方工具进行编辑或管理元信息。 + 如何批量下载 + + 暂时没有实现,不过你可以在 以及{' '} + 追踪该问题。 + + 有更多问题? + + {'欢迎进入 '} + + Telegram “音乐解锁-交流” 交流群 + + + {' 一起探讨。'} + + + ); +} diff --git a/src/faq/QQMusicFAQ.tsx b/src/faq/QQMusicFAQ.tsx new file mode 100644 index 0000000..33d3bc8 --- /dev/null +++ b/src/faq/QQMusicFAQ.tsx @@ -0,0 +1,40 @@ +import { Alert, AlertIcon, Container, List, ListItem, Text, chakra } from '@chakra-ui/react'; +import { Header4 } from '~/components/HelpText/Header4'; +import { SegmentTryOfficialPlayer } from './SegmentTryOfficialPlayer'; +import { QMCv2AllInstructions } from '~/features/settings/panels/QMCv2/QMCv2AllInstructions'; +import { SegmentKeyImportInstructions } from './SegmentKeyImportInstructions'; + +export function QQMusicFAQ() { + return ( + <> + 解锁失败 + + + + + + + 2、检查您的平台 + + 日前,仅Windows客户端下载的歌曲无需密钥,其余平台的官方正式版本均需要提取密钥。 + + + + + iOS用户提取歌曲困难,建议换用电脑操作;Android用户提取密钥需要root,也建议用电脑操作。 + + + + + + + 重复下载同一首的歌曲不重复扣下载配额,但是同一首歌的两个版本会重复扣下载配额,请仔细分辨。 + + + + } /> + + + + ); +} diff --git a/src/faq/SegmentAddKeyDropdown.tsx b/src/faq/SegmentAddKeyDropdown.tsx new file mode 100644 index 0000000..c529e82 --- /dev/null +++ b/src/faq/SegmentAddKeyDropdown.tsx @@ -0,0 +1,25 @@ +import { Flex, IconButton } from '@chakra-ui/react'; +import { MdExpandMore } from 'react-icons/md'; +import { HiWord } from '~/components/HelpText/HiWord'; +import { VQuote } from '~/components/HelpText/VQuote'; + +export function SegmentAddKeyDropdown() { + return ( + + 按下添加一条密钥按钮 + 右侧的 + } + ml="2" + borderTopLeftRadius={0} + borderBottomLeftRadius={0} + isDisabled + css={{ ':disabled': { opacity: 1 } }} + aria-label="示例按钮" + /> + + ); +} diff --git a/src/faq/SegmentKeyImportInstructions.tsx b/src/faq/SegmentKeyImportInstructions.tsx new file mode 100644 index 0000000..8d35f47 --- /dev/null +++ b/src/faq/SegmentKeyImportInstructions.tsx @@ -0,0 +1,44 @@ +import { Flex, Icon, ListItem, OrderedList, Tabs, Text } from '@chakra-ui/react'; +import { SegmentTopNavSettings } from './SegmentTopNavSettings'; +import { VQuote } from '~/components/HelpText/VQuote'; +import { SegmentAddKeyDropdown } from './SegmentAddKeyDropdown'; +import React from 'react'; +import { MdFileUpload } from 'react-icons/md'; + +export interface SegmentKeyImportInstructionsProps { + clientInstructions: React.ReactNode; + tab: string; +} + +export function SegmentKeyImportInstructions({ clientInstructions, tab }: SegmentKeyImportInstructionsProps) { + return ( + <> + 导入密钥可以参考下面的步骤: + + + + + + 设定区域选择{tab} + + + + + + + {'选择 '} + + 从文件导入密钥… + + + + + 选择你的客户端平台来查看密钥提取说明: + + {clientInstructions} + + + + + ); +} diff --git a/src/faq/SegmentTopNavSettings.tsx b/src/faq/SegmentTopNavSettings.tsx new file mode 100644 index 0000000..918ab6e --- /dev/null +++ b/src/faq/SegmentTopNavSettings.tsx @@ -0,0 +1,9 @@ +import { VQuote } from '~/components/HelpText/VQuote'; + +export function SegmentTopNavSettings() { + return ( + <> + 点击顶部的设置 + + ); +} diff --git a/src/faq/SegmentTryOfficialPlayer.tsx b/src/faq/SegmentTryOfficialPlayer.tsx new file mode 100644 index 0000000..3142621 --- /dev/null +++ b/src/faq/SegmentTryOfficialPlayer.tsx @@ -0,0 +1,12 @@ +import { Text, chakra } from '@chakra-ui/react'; + +export function SegmentTryOfficialPlayer() { + return ( + <> + + 1、请检查您的文件 + + 尝试用下载音乐的设备播放一次看看,如果官方客户端都无法播放,那解锁肯定会失败哦。 + + ); +} diff --git a/src/features/settings/panels/KWMv2/KWMv2AllInstructions.tsx b/src/features/settings/panels/KWMv2/KWMv2AllInstructions.tsx new file mode 100644 index 0000000..144e604 --- /dev/null +++ b/src/features/settings/panels/KWMv2/KWMv2AllInstructions.tsx @@ -0,0 +1,25 @@ +import { Tab, TabList, TabPanel, TabPanels } from '@chakra-ui/react'; +import { AndroidADBPullInstruction } from '~/components/AndroidADBPullInstruction/AndroidADBPullInstruction'; +import { InstructionsPC } from './InstructionsPC'; + +export function KWMv2AllInstructions() { + return ( + <> + + 安卓 + Windows + + + + + + + + + + + ); +} diff --git a/src/features/settings/panels/PanelKWMv2Key.tsx b/src/features/settings/panels/PanelKWMv2Key.tsx index ba6d4e7..ca97311 100644 --- a/src/features/settings/panels/PanelKWMv2Key.tsx +++ b/src/features/settings/panels/PanelKWMv2Key.tsx @@ -14,10 +14,6 @@ import { MenuDivider, MenuItem, MenuList, - Tab, - TabList, - TabPanel, - TabPanels, Text, useToast, } from '@chakra-ui/react'; @@ -32,8 +28,7 @@ import { kwm2AddKey, kwm2ClearKeys, kwm2ImportKeys } from '../settingsSlice'; import { selectStagingKWMv2Keys } from '../settingsSelector'; import { KWMv2EKeyItem } from './KWMv2/KWMv2EKeyItem'; import type { StagingKWMv2Key } from '../keyFormats'; -import { InstructionsPC } from './KWMv2/InstructionsPC'; -import { AndroidADBPullInstruction } from '~/components/AndroidADBPullInstruction/AndroidADBPullInstruction'; +import { KWMv2AllInstructions } from './KWMv2/KWMv2AllInstructions'; export function PanelKWMv2Key() { const toast = useToast(); @@ -120,21 +115,7 @@ export function PanelKWMv2Key() { onClose={() => setShowImportModal(false)} onImport={handleSecretImport} > - - 安卓 - Windows - - - - - - - - - + ); diff --git a/src/features/settings/panels/PanelQMCv2Key.tsx b/src/features/settings/panels/PanelQMCv2Key.tsx index c309b2c..802eac7 100644 --- a/src/features/settings/panels/PanelQMCv2Key.tsx +++ b/src/features/settings/panels/PanelQMCv2Key.tsx @@ -14,10 +14,6 @@ import { MenuDivider, MenuItem, MenuList, - Tab, - TabList, - TabPanel, - TabPanels, Text, Tooltip, useToast, @@ -34,10 +30,7 @@ import { StagingQMCv2Key } from '../keyFormats'; import { DatabaseKeyExtractor } from '~/util/DatabaseKeyExtractor'; import { MMKVParser } from '~/util/MMKVParser'; import { getFileName } from '~/util/pathHelper'; -import { InstructionsIOS } from './QMCv2/InstructionsIOS'; -import { InstructionsMac } from './QMCv2/InstructionsMac'; -import { InstructionsPC } from './QMCv2/InstructionsPC'; -import { AndroidADBPullInstruction } from '~/components/AndroidADBPullInstruction/AndroidADBPullInstruction'; +import { QMCv2AllInstructions } from './QMCv2/QMCv2AllInstructions'; export function PanelQMCv2Key() { const toast = useToast(); @@ -171,26 +164,7 @@ export function PanelQMCv2Key() { onClose={() => setShowImportModal(false)} onImport={handleSecretImport} > - - 安卓 - iOS - Mac - Windows - - - - - - - - - - - - - - - + ); diff --git a/src/features/settings/panels/QMCv2/QMCv2AllInstructions.tsx b/src/features/settings/panels/QMCv2/QMCv2AllInstructions.tsx new file mode 100644 index 0000000..3cfd9f5 --- /dev/null +++ b/src/features/settings/panels/QMCv2/QMCv2AllInstructions.tsx @@ -0,0 +1,32 @@ +import { Tab, TabList, TabPanel, TabPanels } from '@chakra-ui/react'; +import { AndroidADBPullInstruction } from '~/components/AndroidADBPullInstruction/AndroidADBPullInstruction'; +import { InstructionsIOS } from './InstructionsIOS'; +import { InstructionsMac } from './InstructionsMac'; +import { InstructionsPC } from './InstructionsPC'; + +export function QMCv2AllInstructions() { + return ( + <> + + 安卓 + iOS + Mac + Windows + + + + + + + + + + + + + + + + + ); +} diff --git a/src/tabs/FaqTab.tsx b/src/tabs/FaqTab.tsx new file mode 100644 index 0000000..2ac9c3a --- /dev/null +++ b/src/tabs/FaqTab.tsx @@ -0,0 +1,21 @@ +import { Center, Container, Heading } from '@chakra-ui/react'; +import { Header3 } from '~/components/HelpText/Header3'; +import { KuwoFAQ } from '~/faq/KuwoFAQ'; +import { OtherFAQ } from '~/faq/OtherFAQ'; +import { QQMusicFAQ } from '~/faq/QQMusicFAQ'; + +export function FaqTab() { + return ( + +
+ 常见问题解答 +
+ QQ 音乐 + + 酷我音乐 + + 其它问题 + +
+ ); +} From 731ec9e3955ccb45b824bff06b65a6aa30a1e7e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=B2=81=E6=A0=91=E4=BA=BA?= Date: Tue, 5 Sep 2023 01:54:50 +0100 Subject: [PATCH 2/3] docs: add reformatted faq doc --- README.MD | 1 + docs/assets/faq_1_home.webp | Bin 0 -> 2272 bytes docs/assets/faq_2_import.webp | Bin 0 -> 11114 bytes docs/assets/faq_3_instructions.webp | Bin 0 -> 25462 bytes docs/faq_zh-hans.md | 130 +++++++++++++++------------- 5 files changed, 73 insertions(+), 58 deletions(-) create mode 100644 docs/assets/faq_1_home.webp create mode 100644 docs/assets/faq_2_import.webp create mode 100644 docs/assets/faq_3_instructions.webp diff --git a/README.MD b/README.MD index 0ace74d..3044fc4 100644 --- a/README.MD +++ b/README.MD @@ -7,6 +7,7 @@ - Unlock Music 的 CLI 版本可以在 [unlock-music/cli] 找到,大批量转换建议使用 CLI 版本。 - 我们新建了 Telegram 群组 [`@unlock_music_chat`] ,欢迎加入! - CI 自动构建已经部署,可以在 [Packages][um-react-packages] 下载。 +- [常见问题参考](./docs/faq_zh-hans.md) [授权协议]: https://git.unlock-music.dev/um/um-react/src/branch/main/LICENSE [unlock-music/cli]: https://git.unlock-music.dev/um/cli diff --git a/docs/assets/faq_1_home.webp b/docs/assets/faq_1_home.webp new file mode 100644 index 0000000000000000000000000000000000000000..98aa93904ddbc599188e73fa5b17f641b0fbb2fb GIT binary patch literal 2272 zcmV<62p{)SNk&H42mku7EJtk z*Plj2#Db|vHlAim&`j<7GIJ6ApMV{P7m5X;^`HLJfBH}Vy)XJN6n7XN09H^qAbtn{ z0PsctodGHw0>l76Ih@8_FDoaeBC{yj;3o-ZZunlPFAR^J>46=o$9(WN9{qmbqkXY8-_qW&w*4JGr*cl;>-1h|E}+y3i$ZtwdT zMm=bEubgmeK84HRThYmTmg1BY7#gvYbB@ozz*DLwQ5F<_f2sIBMZJRP&eKzpOQGSS zS`4oR3V+ku3F=wg`n-5Ynb!|M=R6jYOKs(4qtngR z3eo0ozbdn>>zpB9kWk>|5E%f^o--|+o8MZLXBQNSJEBXe!Z9p4H7HS%U0lHj=#~}S zaaFLC6N;2Lc^qn!&{j|&Mqz@rgTL2&v^Qv*mg#Yh zCJ7G%d&s%&%9|E_b+j=%ZXMsi%B0buY6K%c`dp5quQE)lsh337)QQ;J5LG(ZNG<8s zZLo@KXoRMS%n=u$pOc&=G)LS={vt04c~R1HgrJQG$jxJyUHGPvT=@l9CCxyRAA z(WO%#rN~Z|{y$5SNlP1`m{$i0`Lb1S#uV%vhwe{^?$YW5Hm%uy>ICj@jA@}?g*4kV zDy_~tN5wTnyt?{lWQfO=uV><#v6FL--fWet>c&mZJ4b18PTu`IBxCmiMpK^R;$Bkt z!YQj6d}^l&4{&7M%S-?Z> z;ME`lXqWh9bu-Id0YR;EwubeKk$LJc3nAbfa~Wp@8i?eqbI589i}cllx$_J)(svZDLi?&iQzeGvj+G8CgJ=2 z`TI$CER3(DJ#@S4mgkVM*DTe6LQl&X_e&z4a~pSQ?o( zYyQ00joX^7a^P&hJ&arQ_h8X1+9PW2%O_`)>Ii1kQwDB@J!F8}WbmU?t_GEy12S{? z(|bAyT7Y-_mPR4T|svU3+>X;L>TpzBqM2pl}~gDEcV zCb7!?oz~=Cjue2@9&AO28+se?XO~@CVKy0qj$_(1hNHCXI>qoE6sd-#{sQ?`DY{~{Eh$;+HJ#j7(E$6F^^I1GgS;n+_nBS?f@B zUPunbaORze`CTCrhA;)l>r??_;1N5ME|Pk_nGilLqrdf=BjhcqUImaqY+N6AySQSS zasbutrYhHg-y=k-*!VeNyFyjh*wNP=Grv^FXZBroX2 z#;z(s0P-nQW0C(AU6|y7{OKBr9wOJS#KkdZN!Lgh$q~_AHhniYIQVk6hfu?@5uKZK ze)$h!6^W?L9>{Snb#QHdT!V;jGQ5p`m!`h@FSgRCICY1no>?))q>svUv>AY&7kbSd zCb4xf7x|Gyyj^GgUEXgf=x;Z|BskW{#!pp^4c>9^c& zHjr^MW->dR>8(abS+inc9GP{WosT{#d8Szp!g|qldrYe%DxdvH%?Dw8K!=>cv*Ikw zUCf~adw=>E)vFraVK7JrNa$-XDNBjte`qbrvbl_Dj0#1MoYMA^$;3nh5D(jNX<-%xnRlAXR3e z+W_A}CC5EBR&fX_R6X)_Dg)Z~K*o~lO`O`BoODg!uUR5g0001FN|71Oau-R+Kmo@Q zY+qmX29e(tpq~`Q(U`xlgUv0ljl_acvD|9N270000JGFn0a literal 0 HcmV?d00001 diff --git a/docs/assets/faq_2_import.webp b/docs/assets/faq_2_import.webp new file mode 100644 index 0000000000000000000000000000000000000000..0ab5984782c04537620785ed37fe7b97d25a944f GIT binary patch literal 11114 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

3a7Q72 zh^U@U#%E7VxD+XRNHzm#s6V52HHW7qm`ojY`Gtt=!oZzt1})!(DYVo|r+aqn0|&8MpcC4R$S>zhvhrOTWCFFMqz+3|z_XWD%3&F28(yMu^R48!PC&V-Aj wES>TZpt|?m3frCO!M~cx#m?*i7XSbNL`{EBY6DHFG7T0$06HQ$C;$Ke0P{j@egFUf literal 0 HcmV?d00001 diff --git a/docs/assets/faq_3_instructions.webp b/docs/assets/faq_3_instructions.webp new file mode 100644 index 0000000000000000000000000000000000000000..9431e13c592abaaad23455101acedd81283421b6 GIT binary patch literal 25462 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 literal 0 HcmV?d00001 diff --git a/docs/faq_zh-hans.md b/docs/faq_zh-hans.md index ede9a4f..2be617f 100644 --- a/docs/faq_zh-hans.md +++ b/docs/faq_zh-hans.md @@ -1,58 +1,72 @@ -# 常见问题解答 - -## QQ音乐 -### 解锁失败 -#### 1、请检查您的文件。 -尝试用下载音乐的设备播放一次看看,如果QQ音乐都没法播放,那解锁肯定会受到影响哦。 -#### 2、检查您的平台。 -日前,仅Windows客户端下载的歌曲无需密钥,其余平台的官方正式版本均需要提取密钥。 - ->iOS用户提取歌曲困难,建议换用电脑操作;Android用户提取密钥需要root,也建议用电脑操作。 - ->重复下载同一首的歌曲**不重复扣下载配额**,但是*同一首歌的两个版本会重复扣下载配额*,请仔细分辨。 - -提取密钥教程请访问[新版解锁网站](https://um-react.netlify.app/),前往网站内的设置→“添加一条密钥”旁的**下拉按钮**→从文件导入密钥…→选择您对应的平台查看具体教程。 ->如果仍无法理解,可参考文末的图片操作 - -## 酷我音乐 -### 解锁失败 -酷我音乐的新版加密需要导入密钥。 -#### 1、请检查您的文件。 -尝试用下载音乐的设备播放一次看看,如果酷我音乐都没法播放,那解锁肯定会受到影响哦。 -#### 2、检查您的平台。 -日前,仅手机客户端下载的歌曲**至臻全景声**及**至臻母带**为新版加密,手机平台的其他音质暂时不需要提取密钥,PC平台暂未推出使用新版加密的音质。 - ->iOS用户提取歌曲需要;Android用户提取密钥需要root,或者注入文件提供器。 - -提取密钥教程请访问[新版解锁网站](https://um-react.netlify.app/),前往网站内的设置→切换密钥为KWMv2密钥→“添加一条密钥”旁的**下拉按钮**→从文件导入密钥…→选择您对应的平台查看具体教程。 - ->图片教程请参考QQ音乐(在文末),酷我音乐仅仅是需要切换一下密钥类型。 -## 网易云音乐 -### 解锁失败 -您大概率正在使用Windows平台的网易云音乐3.0测试版。该版本对歌曲的信息新增了某些字段,导致旧版解锁识别错误。您可以找1.10.5版本的旧解锁网站,或者直接换[新版解锁网站](https://um-react.netlify.app/)。 ->[旧解锁网站Demo](https://demo.unlock-music.dev/)拥有者暂时联系不上,所以暂时无法更新。 - -## 其他问题 -### 新版解锁网站解锁的歌曲没有封面 -目前新版没有做歌曲信息匹配与编辑,所以歌曲如果自己没有写入歌曲信息,解出来就是没有的。 -### 新版解锁网站没有批量下载 -目前没有做。抱歉。 - -## 仍有问题? -欢迎进入[Telegram交流群](https://t.me/unlock_music_chat),一起探讨。 - ->QQ音乐导入密钥的图片教程 -

-
- -

点击设置

-
-
- -

点击导入

-
-
- -

查看密钥教程

-
-
\ No newline at end of file +# 常见问题解答 + +## QQ 音乐 + +### 解锁失败 + +#### 1、请检查您的文件。 + +尝试用下载音乐的设备播放一次看看,如果 QQ 音乐都没法播放,那解锁肯定会受到影响哦。 + +#### 2、检查您的平台。 + +日前,仅 Windows 客户端下载的歌曲无需密钥,其余平台的官方正式版本均需要提取密钥。 + +> iOS 用户提取歌曲困难,建议换用电脑操作;Android 用户提取密钥需要 root,也建议用电脑操作。 + +> 重复下载同一首的歌曲**不重复扣下载配额**,但是*同一首歌的两个版本会重复扣下载配额*,请仔细分辨。 + +提取密钥教程请访问[新版解锁网站](https://um-react.netlify.app/),前往网站内的设置 →“添加一条密钥”旁的**下拉按钮**→ 从文件导入密钥…→ 选择您对应的平台查看具体教程。 + +> 如果仍无法理解,可参考文末的图片操作 + +## 酷我音乐 + +### 解锁失败 + +酷我音乐的新版加密需要导入密钥。 + +#### 1、请检查您的文件。 + +尝试用下载音乐的设备播放一次看看,如果酷我音乐都没法播放,那解锁肯定会受到影响哦。 + +#### 2、检查您的平台。 + +日前,仅手机客户端下载的歌曲**至臻全景声**及**至臻母带**为新版加密,手机平台的其他音质暂时不需要提取密钥,PC 平台暂未推出使用新版加密的音质。 + +> Android 用户提取密钥需要 root,或者注入文件提供器。 + +提取密钥教程请访问[新版解锁网站](https://um-react.netlify.app/),前往网站内的设置 →切换密钥为 KWMv2 密钥→“添加一条密钥”旁的**下拉按钮**→ 从文件导入密钥…→ 选择您对应的平台查看具体教程。 + +> 图片教程请参考 QQ 音乐(在文末),酷我音乐仅仅是需要切换一下密钥类型。 + +## 网易云音乐 + +### 解锁失败 + +您大概率正在使用 Windows 平台的网易云音乐 3.0 测试版。该版本对歌曲的信息新增了某些字段,导致旧版解锁识别错误。您可以找 1.10.5 版本的旧解锁网站,或者直接换[新版解锁网站](https://um-react.netlify.app/)。 + +> [旧解锁网站 Demo](https://demo.unlock-music.dev/)拥有者暂时联系不上,所以暂时无法更新。 + +## 其他问题 + +### 新版解锁网站解锁的歌曲没有封面 + +目前新版没有做歌曲信息匹配与编辑,所以歌曲如果自己没有写入歌曲信息,解出来就是没有的。 + +### 新版解锁网站没有批量下载 + +目前没有做。抱歉。 + +## 仍有问题? + +欢迎进入[Telegram 交流群](https://t.me/unlock_music_chat),一起探讨。 + +> QQ 音乐导入密钥的图片教程 + +1. 选择【设定】 + ![选择【设定】](./assets/faq_1_home.webp) +2. 点击下拉菜单,选择【从文件导入密钥…】 + ![点击下拉菜单,选择【从文件导入密钥…】](./assets/faq_2_import.webp) +3. 选择对应的客户端并查阅说明 + ![选择对应的客户端并查阅说明](./assets/faq_3_instructions.webp) From d3874c5ce20b0b8c8235d957eac922476ece4715 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=B2=81=E6=A0=91=E4=BA=BA?= Date: Tue, 5 Sep 2023 01:56:34 +0100 Subject: [PATCH 3/3] chore: fix faq layout --- docs/faq_zh-hans.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/faq_zh-hans.md b/docs/faq_zh-hans.md index 2be617f..8074a14 100644 --- a/docs/faq_zh-hans.md +++ b/docs/faq_zh-hans.md @@ -65,8 +65,8 @@ > QQ 音乐导入密钥的图片教程 1. 选择【设定】 - ![选择【设定】](./assets/faq_1_home.webp) +
![选择【设定】](./assets/faq_1_home.webp) 2. 点击下拉菜单,选择【从文件导入密钥…】 - ![点击下拉菜单,选择【从文件导入密钥…】](./assets/faq_2_import.webp) +
![点击下拉菜单,选择【从文件导入密钥…】](./assets/faq_2_import.webp) 3. 选择对应的客户端并查阅说明 - ![选择对应的客户端并查阅说明](./assets/faq_3_instructions.webp) +
![选择对应的客户端并查阅说明](./assets/faq_3_instructions.webp)