EGM - NgayTho(原版)
<style type="text/css">#paDiv {
margin: auto;
width: 220px;
display: flex;
align-items: center;
border: 1px solid olive;
border-radius: 8px 0px 8px 0px;
background: rgba(0,0,0,.8);
box-shadow: 1px 1px 2px #000;
}
#jindu {
position: relative;
width: 200px;
height: 8px;
line-height: 8px;
font-size: 10px;
color: #eee;
text-align: center;
background: linear-gradient(90deg, olive, tan, gold) no-repeat;
background-size: 20px 0px;
}
#btn-ro {
width: 20px; height: 20px;
line-height: 20px; font-size: 12px;
background: linear-gradient(blue, silver, red);
outline:none;
color: white;
border-radius: 50%;
text-align: center;
cursor: pointer;
animation: rol linear 2s infinite;
}
#btn-ro:hover { opacity: 0.8; }
#btn-ro:active { opacity: 1; }
@keyframes rol { to { transform:rotate(360deg); } }
</style>
<div id="paDiv">
<div id="btn-ro">·</div>
<div id="jindu">
<div id="jd-go"></div>
</div>
</div>
<script language="javascript">
var btn = document.getElementById('btn-ro');
var jindu = document.getElementById('jindu');
var tips = document.getElementById('au-tips');
var aud = document.createElement('audio');
aud.src ="http://www.kumeiwp.com/sub/filestores/2022/02/06/d60dfa330d6f5f2da5e5027f19e33d73.mp3";
aud.addEventListener('ended', function() { btn.style.animationPlayState="paused"; }, true);
aud.addEventListener('timeupdate', tmMsg, true);
aud.play();
function tmMsg(){ //进度条
var jd = (100*aud.currentTime)/aud.duration;
jindu.innerHTML = Math.ceil(jd) + "%";
jindu.style.backgroundSize = jd+ "% 20px";
}
btn.onclick = function(){
aud.paused ? (aud.play(), btn.style.animationPlayState="running") : (aud.pause(), btn.style.animationPlayState="paused");
}
</script>
只显示播放进度,代码量已经不少了,虽然外观看着这么单薄:
<style type="text/css">
#paDiv {
margin: auto;
width: 220px;
display: flex;
align-items: center;
border: 1px solid olive;
border-radius: 8px 0px 8px 0px;
background: rgba(0,0,0,.8);
box-shadow: 1px 1px 2px #000;
}
#jindu {
position: relative;
width: 200px;
height: 8px;
line-height: 8px;
font-size: 10px;
color: #eee;
text-align: center;
background: linear-gradient(90deg, olive, tan, gold) no-repeat;
background-size: 20px 0px;
}
#btn-ro {
width: 20px; height: 20px;
line-height: 20px; font-size: 12px;
background: linear-gradient(blue, silver, red);
outline:none;
color: white;
border-radius: 50%;
text-align: center;
cursor: pointer;
animation: rol linear 2s infinite;
}
#btn-ro:hover { opacity: 0.8; }
#btn-ro:active { opacity: 1; }
@keyframes rol { to { transform:rotate(360deg); } }
</style>
<div id="paDiv">
<div id="btn-ro">·</div>
<div id="jindu">
<div id="jd-go"></div>
</div>
</div>
<script language="javascript">
var btn = document.getElementById('btn-ro');
var jindu = document.getElementById('jindu');
var tips = document.getElementById('au-tips');
var aud = document.createElement('audio');
aud.src ="http://www.kumeiwp.com/sub/filestores/2022/02/06/d60dfa330d6f5f2da5e5027f19e33d73.mp3";
aud.addEventListener('ended', function() { btn.style.animationPlayState="paused"; }, true);
aud.addEventListener('timeupdate', tmMsg, true);
aud.play();
function tmMsg(){ //进度条
var jd = (100*aud.currentTime)/aud.duration;
jindu.innerHTML = Math.ceil(jd) + "%";
jindu.style.backgroundSize = jd+ "% 20px";
}
btn.onclick = function(){
aud.paused ? (aud.play(), btn.style.animationPlayState="running") : (aud.pause(), btn.style.animationPlayState="paused");
}
</script>
是啊,看着很纤细,代码却是不少。有无图按钮的,还有进度的。{:4_187:} 这个播放器漂亮的,感觉评了分以后听到的是二个声音了,错觉吗 绿叶清舟 发表于 2022-2-12 19:11
这个播放器漂亮的,感觉评了分以后听到的是二个声音了,错觉吗
是的,意思是你要给两次评分才合理{:5_117:} 红影 发表于 2022-2-12 18:36
是啊,看着很纤细,代码却是不少。有无图按钮的,还有进度的。
下一步可能会加入可调整进度的 马黑黑 发表于 2022-2-12 20:08
是的,意思是你要给两次评分才合理
那得先去黑了系统了{:4_189:} audio没有设置loop值,可以在JS中create之后加入:
aud.loop = true;
<script>
aud.loop = true;
</script> 马黑黑 发表于 2022-2-12 20:08
下一步可能会加入可调整进度的
是的,这个是它自己播放,无法手动调进度。 红影 发表于 2022-2-12 20:26
是的,这个是它自己播放,无法手动调进度。
一般也不太主张对进度进行调节,但标准播放器具备这个功能,所要将来也要加入 这个可以直接玩的,黑黑太棒了{:4_178:} 播放器 很漂亮唯美 干净为什么我听不到你的这个音乐可以加一个播放音乐的时间吗 00:00-05:20 风中飞尘 发表于 2022-2-12 21:43
播放器 很漂亮唯美 干净为什么我听不到你的这个音乐可以加一个播放音乐的时间吗 00:00-05:20
听不到音乐,说明你的浏览器对声音的设置没有开启自动播放功能,可以试一下单击那个模拟光盘。当然,还不能听到的话,那就是音乐来源与你的网络不兼容。
时间显示非常容易实现,毕竟,复杂的百分比进度要通过audio的时间相关的数据来完成的。 小辣椒 发表于 2022-2-12 21:17
这个可以直接玩的,黑黑太棒了
我正在加可控进度机制,已经加好了,测试无误后将择机分享代码 绿叶清舟 发表于 2022-2-12 20:11
那得先去黑了系统了
要得要得 马黑黑 发表于 2022-2-12 20:54
一般也不太主张对进度进行调节,但标准播放器具备这个功能,所要将来也要加入
这样也挺人性化,可以让用户决定是否跳过前奏。 红影 发表于 2022-2-13 11:45
这样也挺人性化,可以让用户决定是否跳过前奏。
功能需要总是有的 马黑黑 发表于 2022-2-13 19:39
功能需要总是有的
为了实现功能,就得多加很多代码呢。 红影 发表于 2022-2-13 20:06
为了实现功能,就得多加很多代码呢。
这个并不复杂 马黑黑 发表于 2022-2-13 20:16
这个并不复杂
我看到代码多了就头晕{:4_189:}