项目概述
本项目是一个基于HTML5技术开发的在线音乐播放器,具有音乐播放、暂停、切换、音量调节等基本功能,同时还包含用户登录、音乐列表展示等特色功能。项目采用前端技术栈实现,主要包括HTML、CSS和JavaScript。
主要功能模块
1. 页面布局
项目包含多个页面视图:
- 发现音乐页面(faxian.html)
- 动态页面(dt.html)
- 个人音乐页面(me.html)
2. 音乐播放器核心功能
2.1 音频控制
// 核心播放控制代码
audio.onended = function () {
if (modeId == 2) {
// 顺序播放模式
musicId = (musicId + 1) % 4;
}
else if (modeId == 3) {
// 随机播放模式
var oldId = musicId;
while (true) {
musicId = Math.floor(Math.random() * 3) + 0;
if (musicId != oldId) { break; }
}
}
initAndPlay();
}
2.2 进度条控制
function updateProgress() {
var value = audio.currentTime / audio.duration;
progress.style.width = value * 100 + '%';
playedTime.innerText = transTime(audio.currentTime);
}
3. 音乐数据管理
项目使用JSON格式存储音乐数据:
{
"name":"突然想起你",
"audio_url":"../mp3/天后.m4a",
"album":"萧亚轩",
"cover":"http://p1.music.126.net/xxx/xxx.jpg",
"time":"04:49"
}
4. 界面样式设计
项目采用现代化的UI设计,主要样式特点:
- 响应式布局
- 磨砂玻璃效果
- 动画过渡效果
.rotate-play {
animation: rotateAni 10s infinite linear;
animation-play-state: paused;
animation-fill-mode: forwards;
}
技术特点
- 模块化设计:将播放器功能、用户界面等进行模块化分离
- 响应式布局:适配不同设备屏幕
- 动画效果:使用CSS3实现流畅的动画效果
- 事件处理:完善的音频播放事件处理机制
项目亮点
- 支持多种播放模式(顺序播放、随机播放)
- 实现了专辑封面旋转动画效果
- 音乐进度可视化控制
- 完善的音量调节功能
- 磨砂玻璃特效的界面设计