diff --git a/dashboard/docs/FASTIFY_DEPLOYMENT.md b/dashboard/docs/FASTIFY_DEPLOYMENT.md index d6ced6f..efc7a71 100644 --- a/dashboard/docs/FASTIFY_DEPLOYMENT.md +++ b/dashboard/docs/FASTIFY_DEPLOYMENT.md @@ -129,7 +129,7 @@ fastify.get('/apps/drplayer/', async (request, reply) => { ## 测试验证 1. 启动Fastify服务器 -2. 访问 `http://localhost:3000/apps/drplayer/` +2. 访问 `http://localhost:5757/apps/drplayer/` 3. 导航到不同页面(如设置页面) 4. 刷新页面,确认不出现404错误 5. 检查浏览器开发者工具,确认静态资源正常加载 diff --git a/dashboard/package.json b/dashboard/package.json index de36d49..64ece72 100644 --- a/dashboard/package.json +++ b/dashboard/package.json @@ -1,7 +1,7 @@ { "name": "drplayer", "private": true, - "version": "1.0.1 20251016", + "version": "1.0.3 20251017", "type": "module", "scripts": { "dev": "vite", @@ -26,6 +26,7 @@ "dependencies": { "@fastify/static": "^6.12.0", "artplayer": "^5.3.0", + "artplayer-plugin-danmuku": "^5.2.0", "axios": "1.12.0", "crypto-js": "^4.2.0", "echarts": "^5.6.0", diff --git a/dashboard/pnpm-lock.yaml b/dashboard/pnpm-lock.yaml index 0dcef1e..3ddbe9e 100644 --- a/dashboard/pnpm-lock.yaml +++ b/dashboard/pnpm-lock.yaml @@ -14,6 +14,9 @@ importers: artplayer: specifier: ^5.3.0 version: 5.3.0 + artplayer-plugin-danmuku: + specifier: ^5.2.0 + version: 5.2.0 axios: specifier: 1.12.0 version: 1.12.0 @@ -657,6 +660,9 @@ packages: array-flatten@1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + artplayer-plugin-danmuku@5.2.0: + resolution: {integrity: sha512-iHHSGEc0J+gl7imX4nmLqqC7LXmv8xeGf2lUevhhyUCoiCRZplecpKQICHjErVb1Yqyp1xCy6Sp8eYN+EpFWFw==} + artplayer@5.3.0: resolution: {integrity: sha512-yExO39MpEg4P+bxgChxx1eJfiUPE4q1QQRLCmqGhlsj+ANuaoEkR8hF93LdI5ZyrAcIbJkuEndxEiUoKobifDw==} @@ -2290,6 +2296,8 @@ snapshots: array-flatten@1.1.1: {} + artplayer-plugin-danmuku@5.2.0: {} + artplayer@5.3.0: dependencies: option-validator: 2.0.6 diff --git a/dashboard/src/App.vue b/dashboard/src/App.vue index 30ab616..a4644aa 100644 --- a/dashboard/src/App.vue +++ b/dashboard/src/App.vue @@ -5,12 +5,21 @@ + + + + \ No newline at end of file diff --git a/dashboard/src/components/players/ArtVideoPlayer.vue b/dashboard/src/components/players/ArtVideoPlayer.vue index 6b1f7e7..32d00af 100644 --- a/dashboard/src/components/players/ArtVideoPlayer.vue +++ b/dashboard/src/components/players/ArtVideoPlayer.vue @@ -26,11 +26,11 @@ @close="closePlayer" />
- +
- +
@@ -49,9 +49,9 @@
- - + + - + diff --git a/dashboard/src/views/VideoDetail.vue b/dashboard/src/views/VideoDetail.vue index d12361d..9778755 100644 --- a/dashboard/src/views/VideoDetail.vue +++ b/dashboard/src/views/VideoDetail.vue @@ -98,6 +98,7 @@ :current-episode-index="currentEpisodeIndex" :auto-next="true" :headers="parsedHeaders" + :danmaku-url="parsedDanmakuUrl" :qualities="parsedQualities" :has-multiple-qualities="hasMultipleQualities" :initial-quality="initialQuality" @@ -425,6 +426,8 @@ const showVideoPlayer = ref(false) const parsedVideoUrl = ref('') // 解析后的请求头(用于T4接口解析结果) const parsedHeaders = ref({}) +// 解析后的弹幕链接(用于T4接口解析结果) +const parsedDanmakuUrl = ref('') // 多画质相关数据 const parsedQualities = ref([]) const hasMultipleQualities = ref(false) @@ -1584,11 +1587,14 @@ const selectEpisode = async (index) => { // 普通视频内容 console.log('启动内置播放器播放直链视频:', parseResult.url) console.log('T4解析结果headers:', parseResult.headers) + console.log('T4解析结果danmaku:', parseResult.danmaku) console.log('T4解析结果画质信息:', parseResult.qualities, parseResult.hasMultipleQualities) parsedVideoUrl.value = parseResult.url // 提取并存储headers,如果没有headers则使用空对象 parsedHeaders.value = parseResult.headers || {} + // 提取并存储弹幕链接,如果没有danmaku则使用空字符串 + parsedDanmakuUrl.value = parseResult.danmaku || '' // 提取并存储画质信息 parsedQualities.value = parseResult.qualities || [] hasMultipleQualities.value = parseResult.hasMultipleQualities || false