feat: 新增音频播放器功能及MV预览组件
style: 优化页面布局及样式细节 refactor: 重构音频播放逻辑与进度条控制 docs: 更新README说明音频播放功能 test: 添加音频播放器交互测试用例
This commit is contained in:
154
index.html
154
index.html
@@ -5,10 +5,32 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>朴见潮音官网</title>
|
||||
<script src="./js/vue.global.js"></script>
|
||||
<script src="./js/artplayer.js"></script>
|
||||
<link rel="stylesheet" href="./css/index.css" />
|
||||
<style>
|
||||
[v-cloak] {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="content" id="appIndex">
|
||||
<div class="content" id="appIndex" v-cloak>
|
||||
<!-- 原生audio标签(隐藏) -->
|
||||
<audio ref="audioPlayer" preload="none" loop></audio>
|
||||
|
||||
<div class="sidebar flexflex">
|
||||
<div class="pointer">
|
||||
<div class="item" :data-index="'01'"></div>
|
||||
<div class="item active" :data-index="'02'"></div>
|
||||
<div class="item" :data-index="'03'"></div>
|
||||
<div class="item" :data-index="'04'"></div>
|
||||
</div>
|
||||
|
||||
<div class="arrow">
|
||||
<img class="item top" src="./img/arrow-white.svg" />
|
||||
<img class="item bottom" src="./img/arrow-orange.svg" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="introduce">
|
||||
<div class="head flexacenter">
|
||||
<div class="logo mar1200">
|
||||
@@ -42,7 +64,8 @@
|
||||
<img class="bj bj3" src="./img/album-bj3.svg" />
|
||||
<img class="bj bj4" src="./img/album-bj4.png" />
|
||||
<img class="bj bj5" src="./img/album-bj5.svg" />
|
||||
<img class="play" src="./img/play-white-icon.svg" />
|
||||
<img v-if="!audioHeadState" class="play" @click="manageAudio('./mp3/1.MP3','head')" src="./img/play-white-icon.svg" />
|
||||
<img v-else class="play" @click="closeAll()" src="./img/pause-white-icon.svg" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="trait flexflex mar1200">
|
||||
@@ -67,19 +90,132 @@
|
||||
<img class="line line-6" src="./img/works-line-6.svg" />
|
||||
</div>
|
||||
<div class="mv-box mar1200">
|
||||
<div class="item flexflex">
|
||||
<div class="serial">01</div>
|
||||
<div class="item flexflex" v-for="(item, index) in 6" :key="index">
|
||||
<img class="serial-icon" src="./img/serial-icon.png" />
|
||||
<div class="serial">{{ index + 1}}</div>
|
||||
<div class="title">深港双城故事</div>
|
||||
|
||||
<div class="text">中国AIGC产业联盟(AIGCxChina)
|
||||
温州市社科联
|
||||
温州市新闻媒体中心
|
||||
第一届AI音乐春晚 正选节目</div>
|
||||
<div class="text">{{ text }}</div>
|
||||
<div class="time">2024.12</div>
|
||||
<div class="media" @click="openPreview(index)">
|
||||
<img class="img" src="./img/mv-1.svg" />
|
||||
<img class="play" src="./img/play-white-icon.svg" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="audio-box mar1200 flexflex">
|
||||
<div class="item" v-for="(item, index) in audioList" :key="index">
|
||||
<img class="serial-icon" src="./img/serial-icon.png" />
|
||||
<div class="serial">{{ index + 1 }}</div>
|
||||
<div class="content flexflex">
|
||||
<div class="album">
|
||||
<img class="img" src="./img/audio-img.png" />
|
||||
<img class="icon" src="./img/record-icon.png" />
|
||||
</div>
|
||||
<div class="info flexflex">
|
||||
<div class="name">画Remix</div>
|
||||
<div class="subtitle">AI音乐榜冠军</div>
|
||||
<div class="time">2024.3</div>
|
||||
<div class="progress-bar flexacenter">
|
||||
<div class="bar white" :style="{ width: item.progress + '%' }"></div>
|
||||
<div class="circle"></div>
|
||||
<div class="bar black flex1"></div>
|
||||
</div>
|
||||
<div class="operate flexcenter">
|
||||
<img class="speed left" src="./img/speed-left.png" @click="fastForward('slow', item.url, 'works')" />
|
||||
<img v-if="item.state" class="play" @click="closeAll()" src="./img/pause-black-icon.svg" />
|
||||
<img v-else class="play" @click="manageAudio(item.url, 'works')" src="./img/play-black-icon.svg" />
|
||||
<img class="speed right" src="./img/speed-right.png" @click="fastForward('fast', item.url, 'works')" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<img class="bj2" src="./img/works-bj2.png" />
|
||||
</div>
|
||||
|
||||
<div class="custom">
|
||||
<div class="custom-box mar1200 flexflex">
|
||||
<img class="title" src="./img/custom-title.png" />
|
||||
<div class="subtitle">往事可成追忆,把你的故事谱成歌</div>
|
||||
<div class="list flexflex mar1200">
|
||||
<div class="item flexacenter" v-for="(item, index) in 6" :key="index">
|
||||
<div class="info flexflex">
|
||||
<div class="name">画Remix</div>
|
||||
<div class="lyric">走过的路汇成星河,脚下的路更辽阔</div>
|
||||
<div class="progress-bar flexacenter">
|
||||
<div class="bar white" :style="{ width: progress + '%' }"></div>
|
||||
<div class="circle"></div>
|
||||
<div class="bar black" :style="{ width: (100 - progress) + '%' }"></div>
|
||||
</div>
|
||||
<div class="operate flexcenter">
|
||||
<img class="speed left" src="./img/speed-left.png" />
|
||||
<img class="play" src="./img/play-black-icon.svg" />
|
||||
<img class="speed right" src="./img/speed-right.png" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<img class="info-img" src="./img/custom-img.png" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom flexcenter">
|
||||
<img class="bj" src="./img/custom-bj-1.svg" />
|
||||
<img class="bj" src="./img/custom-bj-2.svg" />
|
||||
<img class="bj" src="./img/custom-bj-1.svg" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="student">
|
||||
<div class="student-box flexflex">
|
||||
<img class="title" src="./img/student-title.png" alt="" />
|
||||
<div class="list">
|
||||
<img class="img" src="./img/student-img.png" />
|
||||
</div>
|
||||
<div class="name">《听风少年的梦幻之城》</div>
|
||||
<div class="info flexacenter">
|
||||
<img class="icon" src="./img/student-icon.svg" />
|
||||
林林林 | 7岁 | 广州
|
||||
</div>
|
||||
|
||||
<div class="progress-bar flexacenter">
|
||||
<div class="bar white" :style="{ width: progress + '%' }"></div>
|
||||
<div class="circle"></div>
|
||||
<div class="bar black" :style="{ width: (100 - progress) + '%' }"></div>
|
||||
</div>
|
||||
<!-- <div class="time-display">
|
||||
<span>{{ formatTime(currentTime) }}</span>
|
||||
<span>/</span>
|
||||
<span>{{ formatTime(duration) }}</span>
|
||||
</div> -->
|
||||
|
||||
<div class="operate flexcenter">
|
||||
<img class="cut left" src="./img/cut-left.svg" />
|
||||
<img class="speed left" src="./img/speed-white-left.png" />
|
||||
<img class="play" src="./img/play-white-icon.svg" />
|
||||
<img class="speed right" src="./img/speed-white-right.png" />
|
||||
<img class="cut right" src="./img/cut-right.svg" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="contact flexflex mar1200">
|
||||
<img class="title" src="./img/contact-title.png" />
|
||||
<div class="hint">我们可以为你提供AI音乐定制服务,谱写你独有的人生歌曲</div>
|
||||
<div class="hint">我们可以为你提供AI音乐教学培训服务,让你拥有独立完成音乐作品的能力</div>
|
||||
<img class="arrows" src="./img/arrows-yellow.svg" />
|
||||
<img class="WeChat" src="./img/WeChat-img.jpg" />
|
||||
<img class="logo" src="./img/logo-black.png" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="footer flexcenter">
|
||||
<img class="logo" src="./img/ai-title.png" />
|
||||
<div class="text">广州九微科技有限公司 | Copyright 2001-2025 GTER All Rights Reserved | 粤ICP备14050432号</div>
|
||||
</div>
|
||||
|
||||
<div v-if="previewState" class="preview flexcenter">
|
||||
<img class="close" @click="closePreview()" src="./img/close.svg" />
|
||||
<div class="artplayer-app"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="./js/index.js"></script>
|
||||
|
||||
Reference in New Issue
Block a user