diff --git a/src/components/common/SitePlayer.tsx b/src/components/common/SitePlayer.tsx
index ed1a4fa1..8f668290 100644
--- a/src/components/common/SitePlayer.tsx
+++ b/src/components/common/SitePlayer.tsx
@@ -1,8 +1,7 @@
"use client"
// @ts-ignore
-import APlayer from "aplayer"
-import "aplayer/dist/APlayer.min.css"
+import type APlayer from "aplayer"
let siteAPlayer: APlayer
@@ -21,10 +20,13 @@ export interface AudioInfo {
url: string
}
-export const sitePlayerAddToPlaylist = (audio: AudioInfo) => {
+export const sitePlayerAddToPlaylist = async (audio: AudioInfo) => {
// Check if player is initialized
if (!siteAPlayer) {
- // Initialize
+ // @ts-ignore
+ const APlayer = (await import("aplayer")).default
+ // @ts-ignore
+ await import("aplayer/dist/APlayer.min.css")
siteAPlayer = new APlayer({
container: document.getElementById(playerId),
fixed: true,
@@ -35,9 +37,9 @@ export const sitePlayerAddToPlaylist = (audio: AudioInfo) => {
siteAPlayer.list.add(audio)
}
-export const sitePlayerPlayNow = (audio: AudioInfo) => {
+export const sitePlayerPlayNow = async (audio: AudioInfo) => {
// Add to playlist
- sitePlayerAddToPlaylist(audio)
+ await sitePlayerAddToPlaylist(audio)
// Play now
siteAPlayer.list.switch(siteAPlayer.list.audios.length - 1)
siteAPlayer.play()
diff --git a/src/components/ui/DPlayer.tsx b/src/components/ui/DPlayer.tsx
index 5c75c615..eaf2a717 100644
--- a/src/components/ui/DPlayer.tsx
+++ b/src/components/ui/DPlayer.tsx
@@ -1,12 +1,14 @@
"use client"
-import { DPlayerProps, Player as RcDPlayer } from "rc-dplayer"
-import { memo } from "react"
+import dynamic from "next/dynamic"
+import { type DPlayerProps } from "rc-dplayer"
import { ReactElement } from "rehype-react/lib"
import { toGateway } from "~/lib/ipfs-parser"
-const DPlayer = memo(function DPlayer({
+const RcDPlayer = dynamic(async () => (await import("rc-dplayer")).Player)
+
+const DPlayer = function DPlayer({
src,
children,
...props
@@ -34,6 +36,6 @@ const DPlayer = memo(function DPlayer({