diff --git a/src/app/music/page.tsx b/src/app/music/page.tsx
index 7dc0b39..f51fdc8 100644
--- a/src/app/music/page.tsx
+++ b/src/app/music/page.tsx
@@ -183,6 +183,74 @@ function AudioSpectrumCanvas({
);
}
+
+const VINYL_NEEDLE_SVG = `url('data:image/svg+xml;utf8,')`;
+
+function VinylTurntable({
+ cover,
+ title,
+ isPlaying,
+ className = '',
+}: {
+ cover?: string;
+ title: string;
+ isPlaying: boolean;
+ className?: string;
+}) {
+ return (
+
+
+
+
+
+
+ {cover ? (
+

{
+ e.currentTarget.style.display = 'none';
+ }}
+ />
+ ) : (
+
+ )}
+
+
+
+
+ );
+}
+
// 扩展 Window 接口以支持 Document PiP API
declare global {
interface Window {
@@ -216,6 +284,7 @@ export default function MusicPage() {
const [showPlayer, setShowPlayer] = useState(false);
const [loading, setLoading] = useState(false);
const [showLyrics, setShowLyrics] = useState(false);
+ const [mobileLyricsView, setMobileLyricsView] = useState<'lyrics' | 'vinyl'>('lyrics');
const [musicProxyEnabled, setMusicProxyEnabled] = useState(() => {
if (typeof window === 'undefined') return true;
return (window as any).RUNTIME_CONFIG?.MUSIC_PROXY_ENABLED !== false;
@@ -1928,7 +1997,99 @@ export default function MusicPage() {
return (
<>
-