黄龄 - 入画江南
<style>#papa { left: -214px; width: 1024px; height: 640px; display: grid; place-items: center; background: #ccc url('https://638183.freep.cn/638183/t22/jiangnan.jpg') no-repeat center/cover; box-shadow: 3px 3px 20px #000; position: relative; }
#player { position: absolute; right: 20px; top: 20px; cursor: pointer; }
#lrcbox { position: absolute; top: 20px; font: normal 1.8em sans-serif; color: #50616d; text-shadow: 1px 1px 2px #000, -5px -5px 10px rgba(0,0,0,.65); }
</style>
<div id="papa">
<canvas id="player"></canvas>
<span id="lrcbox"></span>
</div>
<script>
let ctx = player.getContext('2d'),
w = h = player.width = player.height = 120,
prog = '点这播放',
angle = 0,
aud = new Audio();
let lrcAr = [
['0.01','入画江南 - 黄龄'],
['0.99','我有一段情 入画后 归旧梦 故里'],
['8.24','我有一段爱 落款上 将前世印记'],
['17.03','一城天晴一城雨 引我入戏'],
['22.08','平添着醉意'],
['25.38','豫园一抹香茗 酌一杯飘逸'],
['50.01','看江南朝夕 望天色如玉 几番琉璃'],
['58.15','鸳与鸯梳羽 听桥面眷侣 细声如雨'],
['66.08','风追杨柳絮 孩童正嬉戏'],
['69.95','货郎叫卖声淹没了马蹄'],
['73.45','谁家良人又来浣衣'],
['80.39','我有一段情 入画后 归旧梦 故里'],
['89.09','我有一段爱 落款上 将前世印记'],
['97.09','一城天晴一城雨 引我入戏'],
['100.34','平添着醉意'],
['105.65','豫园一抹香茗 酌一杯飘逸'],
['130.08','人山人海里 香火中浓郁 谁的期许'],
['138.04','吹糖裹糖衣 身在弄堂里 巧琢甜蜜'],
['146.06','看一场百戏 尝一口江鱼'],
['149.90','忽听树梢上麻雀争鸣啼'],
['153.62','谁家炊烟缓缓升起'],
['161.10','我有一段情 如倦鸟 屋檐下 栖息'],
['168.88','我有一段爱 几千里 镌刻着回忆'],
['177.15','一方天地一潮汐 让人入迷'],
['182.21','繁华盛世里'],
['185.50','桥下一尾锦鲤 添岁月新意'],
['197.04','我有一段情 入画后 归旧梦 故里'],
['204.96','我有一段爱 落款上 将前世印记'],
['213.16','一城天晴一城雨 引我入戏'],
['218.01','平添着醉意'],
['221.62','豫园一抹香茗 酌一杯飘逸']
];
aud.src = 'https://music.163.com/song/media/outer/url?id=1817661979.mp3';
aud.loop = true;
aud.autoplay = true;
drawCircle();
player.onclick = () => aud.paused ? aud.play() : aud.pause();
aud.addEventListener('timeupdate', () => {
angle = 360 * aud.currentTime / aud.duration;
prog = toMin(aud.currentTime) + ' | ' + toMin(aud.duration);
drawCircle();
for(j=0; j<lrcAr.length; j++){
if(aud.currentTime >= lrcAr) lrcbox.innerHTML = lrcAr;
}
});
function drawCircle() {
ctx.clearRect(0, 0, w, h);
ctx.beginPath();
ctx.strokeStyle = '#f0fcff';
ctx.lineWidth = 8;
ctx.arc(w/2, h/2, w/2 - 6, 0, 2 * Math.PI);
ctx.stroke();
ctx.beginPath();
ctx.strokeStyle = ctx.fillStyle = '#50616d';
ctx.arc(w/2, h/2, w/2 - 6, -90 * Math.PI / 180, (angle - 90) * Math.PI / 180);
ctx.stroke();
ctx.shadowOffsetX = -1;
ctx.shadowOffsetY = -1;
ctx.shadowBlur = 2;
ctx.shadowColor = "rgba(0, 0, 0, 0.5)";
ctx.font = '14px sans-serif';
ctx.textAlign = 'center';
ctx.textBaseline = 'middle';
ctx.fillText(prog, w/2, h/2);
}
function toMin(val) {
if(!val) return '00:00';
val = Math.floor(val);
let min = parseInt(val / 60);
let sec = parseFloat(val % 60);
if(min < 10) min = '0' + min;
if(sec < 10) sec = '0' + sec;
return min + ':' + sec;
}
</script>
参考代码(全):
<style>
#papa { left: -214px; width: 1024px; height: 640px; display: grid; place-items: center; background: #ccc url('https://638183.freep.cn/638183/t22/jiangnan.jpg') no-repeat center/cover; box-shadow: 3px 3px 20px #000; position: relative; }
#player { position: absolute; right: 20px; top: 20px; cursor: pointer; }
#lrcbox { position: absolute; top: 20px; font: normal 1.8em sans-serif; color: #50616d; text-shadow: 1px 1px 2px #000, -5px -5px 10px rgba(0,0,0,.65); }
</style>
<div id="papa">
<canvas id="player"></canvas>
<span id="lrcbox"></span>
</div>
<script>
let ctx = player.getContext('2d'),
w = h = player.width = player.height = 120,
prog = '点这播放',
angle = 0,
aud = new Audio();
let lrcAr = [
['0.01','入画江南 - 黄龄'],
['0.99','我有一段情 入画后 归旧梦 故里'],
['8.24','我有一段爱 落款上 将前世印记'],
['17.03','一城天晴一城雨 引我入戏'],
['22.08','平添着醉意'],
['25.38','豫园一抹香茗 酌一杯飘逸'],
['50.01','看江南朝夕 望天色如玉 几番琉璃'],
['58.15','鸳与鸯梳羽 听桥面眷侣 细声如雨'],
['66.08','风追杨柳絮 孩童正嬉戏'],
['69.95','货郎叫卖声淹没了马蹄'],
['73.45','谁家良人又来浣衣'],
['80.39','我有一段情 入画后 归旧梦 故里'],
['89.09','我有一段爱 落款上 将前世印记'],
['97.09','一城天晴一城雨 引我入戏'],
['100.34','平添着醉意'],
['105.65','豫园一抹香茗 酌一杯飘逸'],
['130.08','人山人海里 香火中浓郁 谁的期许'],
['138.04','吹糖裹糖衣 身在弄堂里 巧琢甜蜜'],
['146.06','看一场百戏 尝一口江鱼'],
['149.90','忽听树梢上麻雀争鸣啼'],
['153.62','谁家炊烟缓缓升起'],
['161.10','我有一段情 如倦鸟 屋檐下 栖息'],
['168.88','我有一段爱 几千里 镌刻着回忆'],
['177.15','一方天地一潮汐 让人入迷'],
['182.21','繁华盛世里'],
['185.50','桥下一尾锦鲤 添岁月新意'],
['197.04','我有一段情 入画后 归旧梦 故里'],
['204.96','我有一段爱 落款上 将前世印记'],
['213.16','一城天晴一城雨 引我入戏'],
['218.01','平添着醉意'],
['221.62','豫园一抹香茗 酌一杯飘逸']
];
aud.src = 'https://music.163.com/song/media/outer/url?id=1817661979.mp3';
aud.loop = true;
aud.autoplay = true;
drawCircle();
player.onclick = () => aud.paused ? aud.play() : aud.pause();
aud.addEventListener('timeupdate', () => {
angle = 360 * aud.currentTime / aud.duration;
prog = toMin(aud.currentTime) + ' | ' + toMin(aud.duration);
drawCircle();
for(j=0; j<lrcAr.length; j++){
if(aud.currentTime >= lrcAr) lrcbox.innerHTML = lrcAr;
}
});
function drawCircle() {
ctx.clearRect(0, 0, w, h);
ctx.beginPath();
ctx.strokeStyle = '#f0fcff';
ctx.lineWidth = 8;
ctx.arc(w/2, h/2, w/2 - 6, 0, 2 * Math.PI);
ctx.stroke();
ctx.beginPath();
ctx.strokeStyle = ctx.fillStyle = '#50616d';
ctx.arc(w/2, h/2, w/2 - 6, -90 * Math.PI / 180, (angle - 90) * Math.PI / 180);
ctx.stroke();
ctx.shadowOffsetX = -1;
ctx.shadowOffsetY = -1;
ctx.shadowBlur = 2;
ctx.shadowColor = "rgba(0, 0, 0, 0.5)";
ctx.font = '14px sans-serif';
ctx.textAlign = 'center';
ctx.textBaseline = 'middle';
ctx.fillText(prog, w/2, h/2);
}
function toMin(val) {
if(!val) return '00:00';
val = Math.floor(val);
let min = parseInt(val / 60);
let sec = parseFloat(val % 60);
if(min < 10) min = '0' + min;
if(sec < 10) sec = '0' + sec;
return min + ':' + sec;
}
</script>
如果不需要圆环阴影,请分别在第 79 行之下 和 第 87 行之下各插入:
ctx.save(); //保存画笔设置 :放在 79 行下面
ctx.restore(); //恢复画笔设置 :放在 87 行下面 漂亮,手机音乐直接出来了,这个播放器爱了爱了{:4_178:} 可以歌词同步,黑黑你太万能了{:4_170:} 这线条画很清晰醒目,别样的感觉,美……{:4_187:} 千羽 发表于 2022-8-23 19:32
这线条画很清晰醒目,别样的感觉,美……
感谢赞许。请喝水{:4_190:} 小辣椒 发表于 2022-8-23 18:44
漂亮,手机音乐直接出来了,这个播放器爱了爱了
{:4_196:} 小辣椒 发表于 2022-8-23 18:46
可以歌词同步,黑黑你太万能了
歌词同步是以前的技术 马黑黑 发表于 2022-8-23 19:41
感谢赞许。请喝水
哈哈,你多喝几杯哈{:4_189:} 千羽 发表于 2022-8-23 19:43
哈哈,你多喝几杯哈
我喝了不少的 马黑黑 发表于 2022-8-23 19:44
我喝了不少的
还得继续喝{:4_190:}{:4_180:}{:4_181:} 千羽 发表于 2022-8-23 19:45
还得继续喝
可以可以,谢谢
黑白色,搭配着着这样的歌词同步和播放器,真美,出乎意料{:4_187:} 红影 发表于 2022-8-23 20:36
黑白色,搭配着着这样的歌词同步和播放器,真美,出乎意料
美可以是东篱一样淳朴的 精致得很,欣赏学习{:4_178:} 朵拉 发表于 2022-8-23 21:17
精致得很,欣赏学习
{:4_190:} 马黑黑 发表于 2022-8-23 20:40
美可以是东篱一样淳朴的
哈哈,这个词用得好,很适合这个帖子{:4_173:} 红影 发表于 2022-8-23 21:18
哈哈,这个词用得好,很适合这个帖子
不是和我不说的 马黑黑 发表于 2022-8-23 21:19
不是和我不说的
但还是应该换个词,纯粹、天然。毕竟淳朴大都是形容人的。