修复和完善
pull/3/head
mengkunsoft 2017-03-20 18:42:28 +08:00
parent 8d4951890a
commit bebc54e5e5
8 changed files with 106 additions and 57 deletions

View File

@ -1,4 +1,4 @@
MKOnlineMusicPlayer V2.0 MKOnlineMusicPlayer V2.1
======== ========
MKOnlineMusicPlayer 是一款开源的基于网易云音乐api的在线音乐播放器。具有音乐搜索、播放、下载、歌词同步显示、个人音乐播放列表同步等功能。 MKOnlineMusicPlayer 是一款开源的基于网易云音乐api的在线音乐播放器。具有音乐搜索、播放、下载、歌词同步显示、个人音乐播放列表同步等功能。
@ -15,7 +15,7 @@ MKOnlineMusicPlayer 是一款开源的基于网易云音乐api的在线音乐播
### 注意事项 ### 注意事项
----- -----
#### 关于API文件 #### 关于API文件
由于网易云音乐官方封锁了国外的访问,因此本播放器的 api.php 在海外的空间上可能无法运行(其实有个“你懂的”的功能,请自行挖掘),建议在国内空间使用 由于网易云音乐官方封锁了国外的访问,因此本播放器的 api.php 在海外的空间上可能无法运行,具体表现为无法搜索歌曲,因此建议在国内空间使用本播放器(其实有个“你懂的”的功能,请自行挖掘)。
#### 关于兼容性 #### 关于兼容性
本播放器设计支持 IE9及以上的现代浏览器。并且已在 Chrome、firefox、IE11 等浏览器测试使用正常。 本播放器设计支持 IE9及以上的现代浏览器。并且已在 Chrome、firefox、IE11 等浏览器测试使用正常。
@ -31,6 +31,16 @@ MKOnlineMusicPlayer 是一款开源的基于网易云音乐api的在线音乐播
### 更新日志 ### 更新日志
----- -----
#### v2.1 `2017/3/20`
- 紧急修复部分浏览器下切换歌曲造成无限播放失败循环的 BUG
- 新增点击未加载完的播放列表弹出提示
- 新增搜索时弹出加载中动画
- 切换歌曲后进度条自动复位
- 优化歌曲外链显示方式,方便复制
- 优化封面图像加载大小
- 新增无歌词、歌词加载中提示
- 优化歌词展现方式
#### v2.0 Beta `2017/3/18` #### v2.0 Beta `2017/3/18`
- 所有代码均推翻重写,前端界面全新改版 - 所有代码均推翻重写,前端界面全新改版
- 完善对手机端的适配,新支持 IE9~IE11 浏览器 - 完善对手机端的适配,新支持 IE9~IE11 浏览器
@ -45,6 +55,9 @@ MKOnlineMusicPlayer 是一款开源的基于网易云音乐api的在线音乐播
- 修复一些已知BUG - 修复一些已知BUG
(因逻辑过于混乱,代码过于庞杂,此版本废弃) (因逻辑过于混乱,代码过于庞杂,此版本废弃)
#### v1.2 `未发布`
- 这个版本的存档神秘失踪,我也不记得有哪些改变。。
#### v1.1 `2016/10/27` #### v1.1 `2016/10/27`
- 修复宽屏下背景覆盖缺失的BUG - 修复宽屏下背景覆盖缺失的BUG
- 修复打开页面后直接点击播放无效的BUG - 修复打开页面后直接点击播放无效的BUG
@ -74,6 +87,7 @@ MKOnlineMusicPlayer 是一款开源的基于网易云音乐api的在线音乐播
| 变量名 | 用途 | | 变量名 | 用途 |
| ----------- | ----------- | | ----------- | ----------- |
| rem.audio | audio dom |
| rem.playlist | 当前正在播放的播放列表编号 | | rem.playlist | 当前正在播放的播放列表编号 |
| rem.playid | 正在播放的这首歌在播放列表中的编号 | | rem.playid | 正在播放的这首歌在播放列表中的编号 |
| rem.dislist | 当前显示的列表的列表编号 | | rem.dislist | 当前显示的列表的列表编号 |

View File

@ -1,15 +1,15 @@
<?php <?php
/************************************************** /**************************************************
* MKOnlinePlayer v2.0 * MKOnlinePlayer v2.1
* 后台音乐数据抓取模块 * 后台音乐数据抓取模块
* 编写mengkun(http://mkblog.cn) * 编写mengkun(http://mkblog.cn)
* 时间2017-3-16 * 时间2017-3-20
*************************************************/ *************************************************/
// api设置 // api设置
$GLOBALS['config'] = array( $GLOBALS['config'] = array(
'proxy' => false, // 是否使用代理true/false 'proxy' => false, // 是否使用代理true/false 海外空间请将这一选项设为 true
'proxyIP' => '222.186.34.84', // 代理 IP 'proxyIP' => '222.186.34.84', // 代理 IP (这里的代理是随手搜的,可能有点慢)
'proxyPort' => 8998, // 代理端口 'proxyPort' => 8998, // 代理端口
'proxyUserpwd' => '' // 代理账号及密码(不需要则留空) 格式为 '用户名:密码' 'proxyUserpwd' => '' // 代理账号及密码(不需要则留空) 格式为 '用户名:密码'
); );

View File

@ -1,9 +1,9 @@
@charset "utf-8"; @charset "utf-8";
/************************************************** /**************************************************
* MKOnlinePlayer v2.0 * MKOnlinePlayer v2.1
* *
* mengkun(http://mkblog.cn) * mengkun(http://mkblog.cn)
* 2017-3-16 * 2017-3-20
*************************************************/ *************************************************/
blockquote, body, button, dd, dl, dt, fieldset, form, h1, h2, h3, h4, h5, h6, hr, html, input, lengend, li, ol, p, pre, td, textarea, th, ul { blockquote, body, button, dd, dl, dt, fieldset, form, h1, h2, h3, h4, h5, h6, hr, html, input, lengend, li, ol, p, pre, td, textarea, th, ul {
margin: 0; margin: 0;
@ -341,6 +341,12 @@ html,body{
background-position: -120px -40px; background-position: -120px -40px;
} }
/* 分享弹窗中的链接框 */
.share-url {
width: 100%;
margin-top: 10px;
}
/* 列表中点击加载更多 */ /* 列表中点击加载更多 */
.list-loadmore { .list-loadmore {
cursor: pointer; cursor: pointer;
@ -462,6 +468,13 @@ html,body{
#lyric .lplaying { #lyric .lplaying {
color: #31c27c; color: #31c27c;
} }
/* 歌词显示区显示的提示语(如加载中、无歌词等) */
.lyric-tip {
position: absolute;
width: 100%;
top: 50%;
}
/* 歌曲信息按钮 */ /* 歌曲信息按钮 */
#music-info { #music-info {
position: absolute; position: absolute;

View File

@ -14,7 +14,7 @@
<meta name="x5-fullscreen" content="true"><!--QQ强制全屏--> <meta name="x5-fullscreen" content="true"><!--QQ强制全屏-->
<meta name="x5-page-mode" content="app"><!--QQ应用模式--> <meta name="x5-page-mode" content="app"><!--QQ应用模式-->
<title>MKOnlinePlayer v2.0</title> <title>MKOnlinePlayer v2.1</title>
<meta name="description" content="一款开源的基于网易云音乐api的在线音乐播放器。具有音乐搜索、播放、下载、歌词同步显示、个人音乐播放列表同步等功能。"/> <meta name="description" content="一款开源的基于网易云音乐api的在线音乐播放器。具有音乐搜索、播放、下载、歌词同步显示、个人音乐播放列表同步等功能。"/>
<meta name="keywords" content="孟坤播放器,在线音乐播放器,MKOnlinePlayer,网易云音乐,音乐api,音乐播放器源代码"/> <meta name="keywords" content="孟坤播放器,在线音乐播放器,MKOnlinePlayer,网易云音乐,音乐api,音乐播放器源代码"/>
@ -38,16 +38,13 @@
</head> </head>
<body> <body>
<!-- 播放器本体 -->
<audio id="mkplayer" src=""></audio>
<!-- 模糊化背景 --> <!-- 模糊化背景 -->
<canvas id="blur-canvas"></canvas> <canvas id="blur-canvas"></canvas>
<div id="blur"></div> <div id="blur"></div>
<!-- 头部logo --> <!-- 头部logo -->
<div class="header"> <div class="header">
<div class="logo" title="Version 2.0; Based on 163music; Powered by mengkun"> <div class="logo" title="Version 2.1; Based on 163music; Powered by Mengkun">
♫ MKOnlinePlayer ♫ MKOnlinePlayer
</div> </div>
</div> <!--class="header"--> </div> <!--class="header"-->

View File

@ -1,12 +1,15 @@
/************************************************** /**************************************************
* MKOnlinePlayer v2.0 * MKOnlinePlayer v2.1
* Ajax 后台数据交互请求模块 * Ajax 后台数据交互请求模块
* 编写mengkun(http://mkblog.cn) * 编写mengkun(http://mkblog.cn)
* 时间2017-3-16 * 时间2017-3-20
*************************************************/ *************************************************/
// ajax加载搜索结果 // ajax加载搜索结果
function ajaxSearch() { function ajaxSearch() {
if(rem.loadPage == 1) { // 弹出搜索提示
var tmpLoading = layer.msg('搜索中', {icon: 16,shade: 0.01});
}
$.ajax({ $.ajax({
type: "POST", type: "POST",
url: mkPlayer.api, url: mkPlayer.api,
@ -31,6 +34,7 @@ function ajaxSearch() {
if(rem.loadPage == 1) // 加载第一页,清空列表 if(rem.loadPage == 1) // 加载第一页,清空列表
{ {
layer.close(tmpLoading); // 关闭加载中动画
musicList[0].item = []; musicList[0].item = [];
rem.mainList.html(''); // 清空列表中原有的元素 rem.mainList.html(''); // 清空列表中原有的元素
addListhead(); // 加载列表头 addListhead(); // 加载列表头
@ -132,7 +136,7 @@ function ajaxPlayList(lid, id, callback){
// 已经在加载了,跳过 // 已经在加载了,跳过
if(musicList[id].isloading === true) { if(musicList[id].isloading === true) {
layer.load(2, {shade: false,time: 500}); //0代表加载的风格支持0-2 layer.msg('列表读取中...', {icon: 16,shade: 0.01,time: 500}); //0代表加载的风格支持0-2
return true; return true;
} }
@ -213,7 +217,9 @@ function ajaxPlayList(lid, id, callback){
// ajax加载歌词 // ajax加载歌词
// 参数音乐ID回调函数 // 参数音乐ID回调函数
function ajaxLyric(mid, callback) { function ajaxLyric(mid, callback) {
if(!mid) return false; lyricTip('歌词加载中...');
if(!mid) callback(''); // 没有音乐ID直接返回
$.ajax({ $.ajax({
type: "POST", type: "POST",

View File

@ -68,9 +68,6 @@ $(function(){
case "sheet": // 播放列表 case "sheet": // 播放列表
dataBox("sheet"); // 在主界面显示出音乐专辑 dataBox("sheet"); // 在主界面显示出音乐专辑
break; break;
default:
layer.msg('这个功能还没加');
} }
}); });
@ -229,7 +226,7 @@ $(function(){
var tempStr = "<span class='info-title'>歌名:</span>" + tmpMusic.musicName + var tempStr = "<span class='info-title'>歌名:</span>" + tmpMusic.musicName +
"<br><span class='info-title'>歌手:</span>" + tmpMusic.artistsName + "<br><span class='info-title'>歌手:</span>" + tmpMusic.artistsName +
"<br><span class='info-title'>专辑:</span>" + tmpMusic.albumName + "<br><span class='info-title'>专辑:</span>" + tmpMusic.albumName +
"<br><span class='info-title'>时长:</span>" + formatTime($("#mkplayer")[0].duration) + "<br><span class='info-title'>时长:</span>" + formatTime(rem.audio.duration) +
"<br><span class='info-title'>操作:</span><span class='info-btn' onclick='thisDownload()'>下载</span><span style='margin-left: 10px' class='info-btn' onclick='thisShare()'>外链</span>"; "<br><span class='info-title'>操作:</span><span class='info-btn' onclick='thisDownload()'>下载</span><span style='margin-left: 10px' class='info-btn' onclick='thisShare()'>外链</span>";
layer.open({ layer.open({
@ -262,20 +259,17 @@ $(function(){
if($(this).is('.btn-state-quiet')) { if($(this).is('.btn-state-quiet')) {
oldVol = $(this).data("volume"); oldVol = $(this).data("volume");
$(this).removeClass("btn-state-quiet"); // 取消静音 $(this).removeClass("btn-state-quiet"); // 取消静音
$("#mkplayer")[0].volume = oldVol; rem.audio.volume = oldVol;
volume_bar.goto(oldVol); // 恢复之前的音量 volume_bar.goto(oldVol); // 恢复之前的音量
} else { } else {
oldVol = volume_bar.percent; oldVol = volume_bar.percent;
$("#mkplayer")[0].volume = 0; rem.audio.volume = 0;
$(this).addClass("btn-state-quiet"); // 开启静音 $(this).addClass("btn-state-quiet"); // 开启静音
$(this).data("volume", oldVol); // 记录当前音量值 $(this).data("volume", oldVol); // 记录当前音量值
volume_bar.goto(0); // 音量归零 volume_bar.goto(0); // 音量归零
} }
}); });
// 播放功能初始化
audioInit();
// 初始化播放列表 // 初始化播放列表
initList(); initList();
}); });
@ -302,7 +296,7 @@ function download(music) {
function ajaxShare(music) { function ajaxShare(music) {
layer.open({ layer.open({
title: '歌曲分享' title: '歌曲分享'
,content: music.artistsName + ' - ' + music.musicName + ' 的外链地址为:<br>' + music.mp3Url ,content: music.artistsName + ' - ' + music.musicName + ' 的外链地址为:<br><textarea class="share-url" rows="3" onmouseover="this.focus();this.select()">' + music.mp3Url + '</textarea>'
}); });
} }
@ -312,6 +306,7 @@ function changeCover(img) {
if(!img) img = "images/player_cover.png"; if(!img) img = "images/player_cover.png";
var animate = false,imgload = false; var animate = false,imgload = false;
img += "?param=186x186"; // 限制封面图为 186*186px
$("#music-cover").attr("src", img); // 改变右侧封面 $("#music-cover").attr("src", img); // 改变右侧封面
$(".sheet-item[data-no='1'] .sheet-cover").attr('src', img); // 改变正在播放列表的图像 $(".sheet-item[data-no='1'] .sheet-cover").attr('src', img); // 改变正在播放列表的图像
@ -354,6 +349,11 @@ function search(str) {
// 向列表中载入某个播放列表 // 向列表中载入某个播放列表
function loadList(list) { function loadList(list) {
if(musicList[list].isloading === true) {
layer.msg('列表读取中...', {icon: 16,shade: 0.01,time: 500});
return true;
}
dataBox("list"); // 在主界面显示出播放列表 dataBox("list"); // 在主界面显示出播放列表
// 调试信息输出 // 调试信息输出
@ -514,6 +514,7 @@ function refreshList() {
function addSheet(no, name, cover) { function addSheet(no, name, cover) {
if(!cover) cover = "images/player_cover.png"; if(!cover) cover = "images/player_cover.png";
if(!name) name = "读取中..."; if(!name) name = "读取中...";
cover += "?param=186x186"; // 限制封面图像大小
var html = '<div class="sheet-item" data-no="' + no + '">' + var html = '<div class="sheet-item" data-no="' + no + '">' +
' <img class="sheet-cover" src="' +cover+ '">' + ' <img class="sheet-cover" src="' +cover+ '">' +
' <p class="sheet-name">' +name+ '</p>' + ' <p class="sheet-name">' +name+ '</p>' +

View File

@ -1,32 +1,46 @@
/************************************************** /**************************************************
* MKOnlinePlayer v2.0 * MKOnlinePlayer v2.1
* 歌词解析及滚动模块 * 歌词解析及滚动模块
* 编写mengkun(http://mkblog.cn) * 编写mengkun(http://mkblog.cn)
* 时间2017-3-16 * 时间2017-3-20
*************************************************/ *************************************************/
var lyricArea = $("#lyric"); // 歌词显示容器 var lyricArea = $("#lyric"); // 歌词显示容器
// 在歌词区显示提示语(如歌词加载中、无歌词等)
function lyricTip(str) {
lyricArea.html("<li class='lyric-tip'>"+str+"</li>"); // 显示内容
}
// 歌曲加载完后的回调函数 // 歌曲加载完后的回调函数
// 参数:歌词源文件 // 参数:歌词源文件
function lyricCallback(str) { function lyricCallback(str) {
rem.lyric = parseLyric(str); // 解析获取到的歌词 rem.lyric = parseLyric(str); // 解析获取到的歌词
if(rem.lyric === '') {
lyricTip('没有歌词');
return false;
}
lyricArea.html(''); // 清空歌词区域的内容 lyricArea.html(''); // 清空歌词区域的内容
lyricArea.scrollLeft(0); // 滚动到顶部 lyricArea.scrollLeft(0); // 滚动到顶部
// 显示全部歌词 // 显示全部歌词
var i = 0;
for(var k in rem.lyric){ for(var k in rem.lyric){
var txt = rem.lyric[k]; var txt = rem.lyric[k];
if(!txt) txt = "&nbsp;"; if(!txt) txt = "&nbsp;";
var li = $("<li>"+txt+"</li>"); var li = $("<li data-no='"+i+"' class='lrc-item'>"+txt+"</li>");
lyricArea.append(li); lyricArea.append(li);
i++;
} }
} }
// 强制刷新当前时间点的歌词 // 强制刷新当前时间点的歌词
// 参数:当前播放时间(单位:秒) // 参数:当前播放时间(单位:秒)
function refreshLyric(time) { function refreshLyric(time) {
if(rem.lyric === '') return false;
time = parseInt(time); // 时间取整 time = parseInt(time); // 时间取整
var i = 0; var i = 0;
for(var k in rem.lyric){ for(var k in rem.lyric){
@ -37,9 +51,11 @@ function refreshLyric(time) {
scrollLyric(i); scrollLyric(i);
} }
// 滚动歌词 // 滚动歌词到指定句
// 参数:当前播放时间(单位:秒) // 参数:当前播放时间(单位:秒)
function scrollLyric(time) { function scrollLyric(time) {
if(rem.lyric === '') return false;
time = parseInt(time); // 时间取整 time = parseInt(time); // 时间取整
if(rem.lyric === undefined || rem.lyric[time] === undefined) return false; // 当前时间点没有歌词 if(rem.lyric === undefined || rem.lyric[time] === undefined) return false; // 当前时间点没有歌词
@ -52,8 +68,8 @@ function scrollLyric(time) {
i ++; i ++;
} }
rem.lastLyric = time; // 记录方便下次使用 rem.lastLyric = time; // 记录方便下次使用
$(".lplaying").removeClass("lplaying"); $(".lplaying").removeClass("lplaying"); // 移除其余句子的正在播放样式
lyricArea.children().eq(i).attr("class","lplaying"); // 加上正在播放样式 $(".lrc-item[data-no='" + i + "']").addClass("lplaying"); // 加上正在播放样式
var scroll = (lyricArea.children().height() * i) - ($(".lyric").height() / 2); var scroll = (lyricArea.children().height() * i) - ($(".lyric").height() / 2);
lyricArea.stop().animate({scrollTop: scroll}, 300); // 平滑滚动到当前歌词位置 lyricArea.stop().animate({scrollTop: scroll}, 300); // 平滑滚动到当前歌词位置
@ -63,6 +79,7 @@ function scrollLyric(time) {
// 解析歌词 // 解析歌词
// 参数:原始歌词文件 // 参数:原始歌词文件
function parseLyric(lrc) { function parseLyric(lrc) {
if(lrc === '') return '';
var lyrics = lrc.split("\n"); var lyrics = lrc.split("\n");
var lrcObj = {}; var lrcObj = {};
for(var i=0;i<lyrics.length;i++){ for(var i=0;i<lyrics.length;i++){

View File

@ -12,7 +12,7 @@ var mkPlayer = {
defaultlist: 3, // 默认要显示的播放列表编号 defaultlist: 3, // 默认要显示的播放列表编号
autoplay: false, // 是否自动播放(true/false) *在手机端可能无法自动播放 autoplay: false, // 是否自动播放(true/false) *在手机端可能无法自动播放
volume: 0.6, // 默认音量值(0~1之间) volume: 0.6, // 默认音量值(0~1之间)
debug: false // 是否开启调试模式(true/false) debug: true // 是否开启调试模式(true/false)
}; };
@ -26,19 +26,6 @@ var mkPlayer = {
// 存储全局变量 // 存储全局变量
var rem = []; var rem = [];
// 播放功能初始化
function audioInit() {
var mkAudio = $("#mkplayer")[0];
// 应用初始音量
mkAudio.volume = volume_bar.percent;
// 绑定歌曲进度变化事件
mkAudio.addEventListener('timeupdate', updateProgress);
mkAudio.addEventListener('play', audioPlay); // 开始播放了
mkAudio.addEventListener('pause', audioPause); // 暂停
mkAudio.addEventListener('ended', nextMusic); // 播放结束
mkAudio.addEventListener('error', audioErr); // 播放器错误处理
}
// 音频错误处理函数 // 音频错误处理函数
function audioErr() { function audioErr() {
// 没播放过,直接跳过 // 没播放过,直接跳过
@ -51,7 +38,7 @@ function audioErr() {
// 点击暂停按钮的事件 // 点击暂停按钮的事件
function pause() { function pause() {
if(rem.paused === false) { // 之前是播放状态 if(rem.paused === false) { // 之前是播放状态
$("#mkplayer")[0].pause(); // 暂停 rem.audio.pause(); // 暂停
} else { } else {
// 第一次点播放 // 第一次点播放
if(rem.playlist === undefined) { if(rem.playlist === undefined) {
@ -64,7 +51,7 @@ function pause() {
listClick(0); listClick(0);
} }
$("#mkplayer")[0].play(); rem.audio.play();
} }
} }
@ -99,9 +86,9 @@ function updateProgress(){
// 暂停状态不管 // 暂停状态不管
if(rem.paused !== false) return true; if(rem.paused !== false) return true;
// 同步进度条 // 同步进度条
music_bar.goto($("#mkplayer")[0].currentTime / $("#mkplayer")[0].duration); music_bar.goto(rem.audio.currentTime / rem.audio.duration);
// 同步歌词显示 // 同步歌词显示
scrollLyric($("#mkplayer")[0].currentTime); scrollLyric(rem.audio.currentTime);
} }
// 显示的列表中的某一项点击后的处理函数 // 显示的列表中的某一项点击后的处理函数
@ -204,6 +191,8 @@ function play(music) {
return false; return false;
} }
music_bar.goto(0); // 进度条强制归零
addHis(music); // 添加到播放历史 addHis(music); // 添加到播放历史
// 如果当前主界面显示的是播放历史,那么还需要刷新列表显示 // 如果当前主界面显示的是播放历史,那么还需要刷新列表显示
@ -215,26 +204,38 @@ function play(music) {
changeCover(music.albumPic); // 更新封面展示 changeCover(music.albumPic); // 更新封面展示
ajaxLyric(music.musicId, lyricCallback); // ajax加载歌词 ajaxLyric(music.musicId, lyricCallback); // ajax加载歌词
$("#mkplayer").attr("src", music.mp3Url); // 更改播放器音乐url $('audio').remove(); // 移除之前的audio
$("#mkplayer")[0].play(); // 开始播放
var newaudio = $('<audio>').html('<source src="'+ music.mp3Url +'">').appendTo('html');
rem.audio = newaudio[0];
// 应用初始音量
rem.audio.volume = volume_bar.percent;
// 绑定歌曲进度变化事件
rem.audio.addEventListener('timeupdate', updateProgress);
rem.audio.addEventListener('play', audioPlay); // 开始播放了
rem.audio.addEventListener('pause', audioPause); // 暂停
rem.audio.addEventListener('ended', nextMusic); // 播放结束
rem.audio.addEventListener('error', audioErr); // 播放器错误处理
rem.audio.play();
} }
// 我的要求并不高,保留这一句版权信息可好? // 我的要求并不高,保留这一句版权信息可好?
// 保留了,你不会损失什么;而保留版权,是对作者最大的尊重。 // 保留了,你不会损失什么;而保留版权,是对作者最大的尊重。
console.info('欢迎使用 MKOnlinePlayer!\n当前版本 v2.0 \n作者mengkun(http://mkblog.cn)\n歌曲来源于网易云音乐(http://music.163.com/)\nGithubhttps://github.com/mengkunsoft/MKOnlineMusicPlayer'); console.info('欢迎使用 MKOnlinePlayer!\n当前版本 v2.1 \n作者mengkun(http://mkblog.cn)\n歌曲来源于网易云音乐(http://music.163.com/)\nGithubhttps://github.com/mengkunsoft/MKOnlineMusicPlayer');
// 音乐进度条拖动回调函数 // 音乐进度条拖动回调函数
function mBcallback(newVal) { function mBcallback(newVal) {
var newTime = $("#mkplayer")[0].duration * newVal; var newTime = rem.audio.duration * newVal;
// 应用新的进度 // 应用新的进度
$("#mkplayer")[0].currentTime = newTime; rem.audio.currentTime = newTime;
refreshLyric(newTime); refreshLyric(newTime);
} }
// 音量条变动回调函数 // 音量条变动回调函数
// 参数:新的值 // 参数:新的值
function vBcallback(newVal) { function vBcallback(newVal) {
$("#mkplayer")[0].volume = newVal; rem.audio.volume = newVal;
if($(".btn-quiet").is('.btn-state-quiet')) { if($(".btn-quiet").is('.btn-state-quiet')) {
$(".btn-quiet").removeClass("btn-state-quiet"); // 取消静音 $(".btn-quiet").removeClass("btn-state-quiet"); // 取消静音