亦是金 发表于 2025-5-7 14:19

《想你想断肠》 - 钰柃/月下思故人 (感谢亚伦老师代码!)

本帖最后由 亦是金 于 2025-5-7 14:23 编辑 <br /><br /><div class="t_fsz">
<table cellspacing="0" cellpadding="0"><tr><td class="t_f" id="postmessage_2303607">

<style>
#papa{
        position: relative;
        width: 1286px;
        height: 720px;
      margin-left:-240px;
        margin-top:50px;
        border-radius: 22px;
        border: thick double#88abfa;
        background:#000;
        overflow: hidden;
        --stat: running ;
}
#vid1{
        width: 80%;
        height: 80%;
        z-index: 1;
        position:absolute;
        top:10%;
        left:10%;
        object-fit: cover;
        pointer-events: none;
}
.vid{
        width: 100%;
        height: 100%;
        z-index: 2;
        position:absolute;
        top:0%; left:0%;

        opacity: 0;
        object-fit: cover;
        pointer-events: none;
        animation: round 80s linear infinite var(--stat);
}
@keyframes round {
        1% {opacity: 0;}
        5% {opacity: .6;}
        10% {opacity:.8;}
        15% {opacity:1;}
        20% {opacity: 0;}
}
.vid:nth-child(1){animation-delay: 72s;}
.vid:nth-child(2){animation-delay: 64s;}
.vid:nth-child(3){animation-delay: 56s;}
.vid:nth-child(4){animation-delay: 48s;}
.vid:nth-child(5){animation-delay: 40s;}
.vid:nth-child(6){animation-delay: 32s;}
.vid:nth-child(7){animation-delay: 24s;}
.vid:nth-child(8){animation-delay: 16s;}
.vid:nth-child(9){animation-delay: 8s;}
.vid:nth-child(10){animation-delay: 0s;}

#mdiv {
        top:75%;
        left:0%;
        cursor: pointer;
        width:250px;
        text-align:center;
        animation:rot 10s linear infinite var(--stat);
        position: absolute;
        filter:drop-shadow(#000 0px 0 1px);
        z-index: 40;
}
@keyframes rot { to { transform: rotate(-2turn);} }
#mdiv:hover {}

#lrc {
      --state: paused;
      --motion: cover2;
      --tt: 2s;
      --bg: linear-gradient(40deg, #fa4354, #fa4354, #7718f8, #18f5f8, #f5f818, #b75004);
      position: absolute;
        z-index: 6;
      left: 50%;
      transform: translate(-50%);
      top: 86%;
      font:300 3.2em 华文新魏;
text-indent:-20px
        color: #000;
            
      filter:drop-shadow(#FFFFFF 1px 0 0)drop-shadow(#FFFFFF 0 1px 0)drop-shadow(#FFFFFF -1px 0 0) drop-shadow(#FFFFFF 0 -1px0);
}
#lrc::before {
      position: absolute;
      content: attr(data-lrc);
      width: 20%;
      height: 100%;
      color: transparent;
      overflow: hidden;
      white-space: pre;
      background: var(--bg);
        -webkit-background-clip: text;
      animation: var(--motion) var(--tt) linear forwards;
      animation-play-state: var(--state);
}
@keyframes cover1{0% { width: 0%;}100% { width: 100%;}}
@keyframes cover2 { 0% { width: 0%;}100% { width: 100%;}}
#fullscreen { position: absolute; bottom:92%; left:85%;font:900 2em/0em 楷体;color:#ffffff; opacity: 1; cursor: pointer; z-index: 111}
</style >

<div style="position: relative;width: 500px;height: 50px;top: 220px;LEFT: -180px;z-index: 88;filter: drop-shadow(-1px 1px 1px #ffffff)drop-shadow(0px -1px 1px #ffffff)drop-shadow(0px 0px 1px #ffffff)drop-shadow(0px 0px 1px #ffffff)drop-shadow(0px 0px 1px #ffffff)">
<p><span style="color:#f638ef;"><span style="font-family:微软简中圆;"><span style="font-size:34px;">《 想 你 想 断 肠 》</span></span></span></p></div>

<div style="position: relative;width: 500px;height: 50px;top: 190px;LEFT: 120px;z-index: 99;filter: drop-shadow(-1px 1px 1px #ffffff)drop-shadow(0px -1px 1px #ffffff)drop-shadow(0px 0px 1px #ffffff)drop-shadow(0px 0px 1px #ffffff)drop-shadow(0px 0px 1px #ffffff)">
<p><span style="color:#386df6;"><span style="font-family:微软简中圆;"><span style="font-size:20px;"> 演唱:钰柃/月下思故人</span></span></span></p></div>

<div style="position: relative;width: 500px;height: 50px;top:770px;LEFT: 850px;z-index: 100;filter: drop-shadow(-1px 1px 1px #e8f552)drop-shadow(0px -1px 1px #e8f552)drop-shadow(0px 0px 1px #e8f552)drop-shadow(0px 0px 1px #e8f552)drop-shadow(0px 0px 1px #e8f552)">
<p><span style="color:#ff0000;"><span style="font-family:华文隶书;"><span style="font-size:26px;">亦是金在线音乐</span></span></span></p></div>

<div id="papa" >
<span id="fullscreen">全屏欣赏</span>

<video id="vid1" src="https://video-qn.51miz.com/preview/video/00/00/12/79/V-127936-7871EE24.mp4" loop muted autoplay=""></video>

<div>
<video class="vid" src="https://video-qn.51miz.com/preview/video/00/00/66/27/V-662735-635AC2F4.mp4" loop muted autoplay></video>
<video class="vid" src="https://video-qn.51miz.com/preview/video/00/00/66/27/V-662739-DB83DC4F.mp4" loop muted autoplay></video>
<video class="vid" src="https://video-qn.51miz.com/preview/video/00/00/66/27/V-662744-5AB898FC.mp4" loop muted autoplay></video>
<video class="vid" src="https://video-qn.51miz.com/preview/video/00/00/66/27/V-662745-6A133EE2.mp4" loop muted autoplay></video>
<video class="vid" src="https://video-qn.51miz.com/preview/video/00/00/66/27/V-662750-434FC318.mp4" loop muted autoplay></video>
<video class="vid" src="https://video-qn.51miz.com/preview/video/00/00/66/27/V-662751-9920AF09.mp4" loop muted autoplay></video>
<video class="vid" src="https://video-qn.51miz.com/preview/video/00/00/66/27/V-662752-47C1FAC9.mp4" loop muted autoplay></video>
<video class="vid" src="https://video-qn.51miz.com/preview/video/00/00/66/27/V-662736-90727989.mp4" loop muted autoplay></video>
<video class="vid" src="https://video-qn.51miz.com/preview/video/00/00/66/27/V-662738-06380436.mp4" loop muted autoplay></video>
<video class="vid" src="https://video-qn.51miz.com/preview/video/00/00/66/27/V-662747-1B7225FF.mp4" loop muted autoplay></video>
</div>
<audio id="aud" src="https://s2.ananas.chaoxing.com/sv-w8/audio/dd/6f/e7/5f8ee7a15d9bbaeaa52473fd8bc72855/audio.mp3" autoplay loop></audio>
<div id="mdiv">

<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg"><path d="M140.5,99.99535l-16.34178,5.81357l0,-11.62096l16.34178,5.80738zm-11.86551,-28.63758l-7.44497,15.67003l-8.21578,-8.22197l15.66074,-7.44806zm-28.63449,-11.85932l5.81048,16.34487l-11.62405,0l5.81357,-16.34487zm-28.63758,11.85932l15.66693,7.44806l-8.21887,8.22197l-7.44806,-15.67003zm-11.86242,28.63758l16.34487,-5.80738l0,11.62096l-16.34487,-5.81357zm11.86242,28.63758l7.44806,-15.66384l8.21887,8.21887l-15.66693,7.44497l0,0zm28.63758,11.86861l-5.81357,-16.34797l11.62405,0l-5.81048,16.34797zm28.63449,-11.86861l-15.66384,-7.44187l8.21578,-8.21887l7.44806,15.66074zm-48.88294,-28.63758l0,0c0,-11.18138 9.06707,-20.24845 20.25155,-20.24845c11.18138,0 20.25155,9.06707 20.25155,20.24845c0,11.18448 -9.07017,20.25155 -20.25155,20.25155c-11.18757,0 -20.25155,-9.06707 -20.25155,-20.25155l0,0z" fill="#fc65ec"/></svg>

</div>
<div data-lrc="视频转场效果" id="lrc">亦是金在线音乐欣赏</div>
</div>

<script>
(function() {
      const vids = document.querySelectorAll('.vid');
      var mState = () => {papa.style.setProperty('--stat', aud.paused ? 'paused' : 'running');
         vids.forEach(vid => aud.paused ? vid.pause() : vid.play());
      };
      aud.onplaying = aud.onpause = () => mState();
      })();

mdiv.onclick = () => aud.paused ? (aud.play(),vid1.play()): (aud.pause(),vid1.pause());
let fs = true;
      fullscreen.onclick = () => {
                fs ? (fullscreen.innerText = '退出全屏',papa.requestFullscreen()) : (fullscreen.innerText = '全屏欣赏', document.exitFullscreen());
                fs = !fs;
      };
</script>
<script >
(function() {
/*原始lrc歌词*/
let lrcStr = `《想你想断肠》
词曲:钰柃
演唱:钰柃/月下思故人
出品:钰柃文化影视传媒
歌词编辑:亦是金
。。。。。。
好久没有看见你的模样
有时还会想起你的过往
这次又走过了老地方
突然触痛心底的伤
那只乌篷船依旧晃啊晃
只是船长他换了个地方
以为你在船头摇着桨
一抬头却只是幻想
我想你啊想断肠
伤心泪水不停流淌
为什么你变了心
许下的誓言说忘就忘
我想你啊想断肠
你却搂着别人的肩膀
谁能治愈我的伤
谁还能把我放在心上
我想你啊想你想断肠
。。。。。。
好久没有看见你的模样
有时还会想起你的过往
这次又走过了老地方
突然触痛心底的伤
那只乌篷船依旧晃啊晃
只是船长他换了个地方
以为你在船头摇着桨
一抬头却只是幻想
我想你啊想断肠
伤心泪水不停流淌
为什么你变了心
许下的誓言说忘就忘
我想你啊想断肠
你却搂着别人的肩膀
谁能治愈我的伤
谁还能把我放在心上
我想你啊想断肠
伤心泪水不停流淌
为什么你变了心
许下的誓言说忘就忘
我想你啊想断肠
你却搂着别人的肩膀
谁能治愈我的伤
谁还能把我放在心上
我想你啊想你想断肠
-- 谢谢欣赏 --


`;

/*变量 :mKey - 当前歌词索引;mFlag :调用关键帧动画索引;averAdd :平均值补偿*/
let mKey = 0, mFlag = true, averAdd = 0.3;

/*函数 :获取每句歌词用时,歌词用时若超过平均值则取平均值,最后一句歌词则取平均值*/
let lrcTime = (ar) => {
      let tmpAr = [];
      for(j = 0; j <ar.length - 1; j ++) {
                if(j !== ar.length - 1) tmpAr = parseFloat((ar - ar).toFixed(1));
      }
      let aver = parseInt(tmpAr.reduce((a,b) => a + b) / (tmpAr.length - 1)) + averAdd;
      tmpAr.push(aver);
      tmpAr.forEach((item,key) => {
                ar = item > aver ? aver : item;
      });
      return ar;
};

/*函数 :从原始lrc歌词获取信息并存入 n*3 数组*/
let getLrcAr = (text) => {
      let lrcAr = [];
      let calcRule = ;
      for(x of text.split('\n')) {
                let ar = [];
                let re = /\d+[\.:]\d+([\.:]\d+)?/g;
                let geci = x.replace(re,'');
                if(geci) {
                        geci = geci.replace(/[\[\]\'\"\t,]s?/g,'');
                        let time = x.match(re);
                        if(time != null) {
                              for(y of time) {
                                        let tmp = y.match(/\d+/g);
                                        let sec = 0;
                                        for(z in tmp) sec += tmp * calcRule;
                                        ar = ;
                                        lrcAr.push(ar);
                              }
                        }
                }
      }
      lrcAr.sort((a,b)=> a - b);
      return(lrcTime(lrcAr));
};

/*函数 :模拟显示同步歌词*/
let showLrc = (time) => {
      let name = mFlag ? 'cover1' : 'cover2';
      lrc.innerHTML = lrcAr;
      lrc.dataset.lrc = lrcAr;
      lrc.style.setProperty('--motion', name);
      lrc.style.setProperty('--tt', time + 's');
      lrc.style.setProperty('--state', 'running');
      mKey += 1;
      mFlag = !mFlag;
};

/*函数 :处理当前歌词索引 mKey*/
let calcKey = () => {
      for (j = 0; j < lrcAr.length; j++) {
                if (aud.currentTime <= lrcAr) {
                        mKey = j - 1;
                        break;
                }
      }
      if (mKey < 0) mKey = 0;
      if (mKey > lrcAr.length - 1) mKey = lrcAr.length - 1;
      let time = lrcAr - (aud.currentTime - lrcAr);
      showLrc(time);
};

/*格式化时间信息*/
let toMin = (val) => {
      if (!val) return '00:00';
      val = Math.floor(val);
      let min = parseInt(val / 60),
      sec = parseFloat(val % 60);
      if (min < 10) min = '0' + min;
      if (sec < 10) sec = '0' + sec;
      return min + ':' + sec;
}

/*函数 :关键帧动画状态切换*/
let mState = () => aud.paused ? (lrc.style.setProperty('--state','paused')) : (lrc.style.setProperty('--state','running'));

/*监听播放进度*/
aud.addEventListener('timeupdate', () => {
      for (j = 0; j < lrcAr.length; j++) {
                if (aud.currentTime >= lrcAr) {
                        cKey = j;
                        if (mKey === j) showLrc(lrcAr);
                        else continue;
                }
      }
});
aud.addEventListener('pause', () => mState());/*监听暂停事件*/
aud.addEventListener('play', () => mState());/*监听播放事件*/
aud.addEventListener('seeked', () => calcKey());/*监听查询事件*/
let lrcAr = getLrcAr(lrcStr); /*获得歌词数组*/
})();
</script>
</td></tr></table>

liumang 发表于 2025-5-7 23:17

问好一是金老师,歌曲听到的,画面没有看见

liumang 发表于 2025-5-7 23:20

https://upfile.mp3.wf/view.php/94ac51da1fe67bf0054fee91a3b82e92.png

liumang 发表于 2025-5-7 23:21

现在出来了{:6_181:}

liumang 发表于 2025-5-7 23:22

老师会不会是这个播放器的原因?
页: [1]
查看完整版本: 《想你想断肠》 - 钰柃/月下思故人 (感谢亚伦老师代码!)