花潮论坛

搜索
热搜: 活动 交友 discuz
查看: 16|回复: 7

[单曲音乐] 晚安

[复制链接]
  • TA的每日心情
    奋斗
    2026-5-5 08:50
  • 签到天数: 1808 天

    [LV.Master]伴坛终老

    3209

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

    发表于 2026-5-5 21:52 | 显示全部楼层 |阅读模式

    请马上登录,朋友们都在花潮里等着你哦:)

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x

    评分

    参与人数 1威望 +50 金钱 +100 经验 +50 收起 理由
    红影 + 50 + 100 + 50 匠心独运,细节精致入微!

    查看全部评分

  • TA的每日心情
    奋斗
    2026-5-5 08:50
  • 签到天数: 1808 天

    [LV.Master]伴坛终老

    3209

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2026-5-5 21:53 | 显示全部楼层
    帖子代码
    1. <style>
    2.   @import 'https://638183.freep.cn/638183/web/api/audioplayer.css';
    3.   .pa { --offsetX: 81px; --bg: url('https://pic4.zhimg.com/v2-28748b998abcf9e9224aa51b3c4d710c_r.jpg') no-repeat center/cover; }
    4.   .player { width: 480px; bottom: 10px; color: lightblue; }
    5.   .btnFs { top: 20px; right: 20px; color: lightblue; }
    6.   .mypic { width: 160px; transition: .5s; opacity: var(--opacity); }
    7.   .mypic:nth-of-type(1) { top: 30px; filter: hue-rotate(60deg); }
    8.   .mypic:nth-of-type(2) { left: 100px; bottom: 200px; filter: hue-rotate(120deg); }
    9.   .mypic:nth-of-type(3) { right: 100px; bottom: 200px; filter: hue-rotate(180deg); }
    10.   #lrc { bottom: 60px; color: silver; --color1: steelblue; --color2: white; }
    11. </style>

    12. <div id="pa" class="pa">
    13.   <video class="pd-vid" src="https://img.tukuppt.com/video_show/1863507/00/13/38/5df20bcb2b0fd.mp4" autoplay loop muted></video>
    14.   <img class="mypic rot" src="https://638183.freep.cn/638183/small/780.webp" />
    15.   <img class="mypic rot" src="https://638183.freep.cn/638183/small/780.webp" />
    16.   <img class="mypic rot" src="https://638183.freep.cn/638183/small/780.webp" />
    17. </div>

    18. <script>
    19.   var geci = `[00:00.490]啊啊啊啊啊啊~\n[00:22.103]词/曲/唱 :马丁\n[00:54.490]你迷离的跳,红色的舞蹈\n[01:03.490]你绽放在这,蓝色酒杯\n[01:12.490]抚摸我的眼,那斑驳的碎片\n[01:21.490]脑海中的你,怎么还不来\n[01:30.490]那次海边的你,迷人的微笑\n[01:38.490]不知过多久,能再次拥抱\n[01:47.490]风吹过的麦田,我点燃一支烟\n[01:56.490]当时的我们,就这样凋谢\n[02:05.490]啊啊啊啊啊~啊啊啊啊~啊啊啊啊~\n[02:42.490]music\n[03:16.490]曾经他们说,我颜色太独特\n[03:25.490]现在的我,不能和你在一起\n[03:34.490]稀有的晴朗,这里的阳光\n[03:43.490]我在思念着你,我亲爱的\n[03:52.490]啊啊啊啊啊~啊啊啊啊啊~啊啊啊啊啊啊啊啊啊~`;

    20.   var options = {
    21.     pa: '.pa',
    22.     urls: [['https://music.163.com/song/media/outer/url?id=137703', '晚安']],
    23.     btns: document.querySelectorAll('.mypic'),
    24.   };

    25.   loadJs('https://638183.freep.cn/638183/web/api/audioplayer.min.js?v0', function() {
    26.     loadJs('https://638183.freep.cn/638183/web/api/yslrc.js', function() {
    27.       const aud = new AudPlayer(options);
    28.       LRC(aud.pa, aud.aud, geci);
    29.     });
    30.   });  

    31.   function loadJs(url, callback) {
    32.     var script = document.createElement('script');
    33.     script.charset = 'utf-8';
    34.     script.src = url;
    35.     script.onload = function() {
    36.       if (callback) callback();
    37.     };
    38.     document.head.appendChild(script);
    39.   }
    40. </script>
    复制代码
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1897

    主题

    33万

    回帖

    39万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2026-5-5 22:07 | 显示全部楼层
    好听的低音炮,歌词充满画面感与情绪张力,通过“红色的舞蹈”、“蓝色酒杯”、“海边的微笑”、“风吹过的麦田”等意象,描绘了思念、回忆与感伤的氛围。歌曲中大量的“啊啊啊啊”吟唱部分,增强了情感的宣泄与音乐感染力。令人陶醉的歌声
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2026-5-5 08:50
  • 签到天数: 1808 天

    [LV.Master]伴坛终老

    3209

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2026-5-5 22:07 | 显示全部楼层
    本帖:

            使用 audioplayer 插件 + yslrc 插件 发带LRC歌词的单曲帖

    (一)audioplayer 发单曲,配置中的 urls 键值只有一个数组元素(代码第 25 行);

    (二)yslrc.js 是原生LRC歌词插件,实际上它只是一个函数,去年八月份做的(当时提供有ES模块),后面的回复会给出完整源码。调用该函数,至少需要三个参数(按顺序):

            其一:帖子主元素 dom 实体,例如:假设帖子有 id=“xxx",就用 xxx,也可以通过其它途径提供,例如本例的 aud.pa,aud 是 audiopalyer 实例化的对象,它有一个 pa 变量,指向帖子主元素实体标签;

            其二:audio 控件实体 dom,例如:假设帖子中有 id="myaudio" 的 audio 标签,则使用 myaudio 做传参,也可以使用其它途径提供dom实体参数,就像本例的 aud.aud,前面的 aud 是 audioplayer 的实例化对象,它带有一个 aud 实体,指向动态创建的 audio 标签;

            其三:歌词文本,即原生格式的LRC歌词字符串(歌词格式请参考代码第 21 行)。代码中的 geci 是实现声明的变量,然后用到函数中的第三个参数。

            还有另外两个可选参数,详见 yslrc.js 源码。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2026-5-5 08:50
  • 签到天数: 1808 天

    [LV.Master]伴坛终老

    3209

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2026-5-5 22:08 | 显示全部楼层
    1. /* yslrc.js 独立歌词同步 (by Mhh, 2025-8-12)

    2.    参数:
    3.       @param pa : 宿主元素 dom 实体 (必选)
    4.       @param aud :audio实体标签(必选)
    5.       @param lrcText : 原生歌词 (必选)
    6.       @param skip : 同步微调系数 (可选)
    7.       @param average : 歌句用时均摊系数 (可选)

    8.    前台css设置:
    9.       #lrc { 定位、修改前景色、字号等,可选 }
    10.       #lrc::before { 主要设置同步颜色,可选 }

    11.    前台HTML:
    12.       <div id="lrc" data-lrc="HC">HC</div> (可选)
    13. */
    14. const cssCode = `
    15.         #lrc { --motion: cover1; --tt: 1s; --color1: hsla(100,10%,50%,.75); --color2: hsla(100,100%,20%,.65); position: absolute; font: bold 2.4em sans-serif; color: hsl(100, 100%, 90%); white-space: pre; cursor: default; filter: drop-shadow(1px 1px 2px hsla(0, 100%, 0%, .85)); z-index: 900; }
    16.         #lrc::before { position: absolute; content: attr(data-lrc); width: 0%; height: 100%; color: transparent; overflow: hidden; white-space: pre; background: linear-gradient(180deg, var(--color1), var(--color2)); filter: inherit; background-clip: text; animation: var(--motion) var(--tt) linear forwards var(--state); }
    17.         @keyframes cover1 { from { width: 0%; }  to { width: 100%; } }
    18.         @keyframes cover2 { from { width: 0%; }  to { width: 100%; } }
    19. `;

    20. function LRC(pa, aud, lrcText, skip = 0, average = 0) {
    21.         if (pa instanceof Element === false || aud instanceof Element === false || !lrcText) return;

    22.         let curkey = 0, lrcAr;

    23.         let cssEl = document.getElementById('lrc-only-css');

    24.         if (!cssEl) {
    25.                 cssEl = document.createElement('style');
    26.                 cssEl.id = 'lrc-only-css';
    27.                 cssEl.type = 'text/css';
    28.                 cssEl.textContent = cssCode;
    29.                 document.head.appendChild(cssEl);
    30.         }

    31.         let lrc = pa.querySelector('#lrc');

    32.         if (!lrc) {
    33.                 lrc = document.createElement('div');
    34.                 lrc.id = 'lrc';
    35.                 lrc.textContent = lrc.dataset.lrc = 'HUACHAO LRC';
    36.                 pa.appendChild(lrc);
    37.         }

    38.         const lrcTime = (ar) => {
    39.                 let tmpAr = [];
    40.                 for (let j = 0; j < ar.length - 1; j ++) {
    41.                         if (j !== ar.length - 1) tmpAr[j] = parseFloat((ar[j + 1][0] - ar[j][0]).toFixed(1));
    42.                 }
    43.                 let aver = parseInt(tmpAr.reduce((a, b) => a + b) / (tmpAr.length - 1)) - average || 0;
    44.                 tmpAr.push(aver);
    45.                 tmpAr.forEach((item, key) => {
    46.                         ar[key][2] = item > aver ? aver : item;
    47.                 });
    48.                 return ar;
    49.         };

    50.         const getLrcAr = (text) => {
    51.                         let lrc_ar = [];
    52.                     const ar = text.trim().split('\n').map(line => line.trim());
    53.                     ar.sort();
    54.                     const reg = /\[(\d+)[.:](\d+)[.:](\d+)\](.*)/;
    55.                     ar.forEach(item => {
    56.                         let result = item.match(reg);
    57.                         let tmsg = parseInt(result[1]) * 60 + parseInt(result[2]) + parseInt(result[3]) / 1000 + skip;
    58.                         lrc_ar.push([tmsg, result[4].trim()]);
    59.                     });
    60.                     return (lrcTime(lrc_ar));
    61.                 };

    62.         lrcAr = getLrcAr(lrcText);
    63.         
    64.         const showLrc = (time) => {
    65.                 const ani = window.getComputedStyle(lrc,'::before').animationName;
    66.                 const name = ani === 'cover1' ? 'cover2' : 'cover1';
    67.                 lrc.innerHTML = lrcAr[curkey][1];
    68.                 lrc.dataset.lrc = lrcAr[curkey][1].replace(/<br>/, '\n');
    69.                 lrc.style.setProperty('--motion', name);
    70.                 lrc.style.setProperty('--tt', time + 's');
    71.                 curkey += 1;
    72.                 lrc.title = lrcAr.length + '/' + curkey;
    73.         };

    74.         const calcKey = () => {
    75.                 for (let j = 0; j < lrcAr.length; j++) {
    76.                         if (aud.currentTime <= lrcAr[j][0]) {
    77.                                 curkey = j - 1;
    78.                                 break;
    79.                         }
    80.                 }
    81.                 if (curkey < 0) curkey = 0;
    82.                 if (curkey > lrcAr.length - 1) curkey = lrcAr.length - 1;
    83.                 let time = lrcAr[curkey][2] - (aud.currentTime - lrcAr[curkey][0]);
    84.                 showLrc(time);
    85.         };

    86.         aud.ontimeupdate = () => {
    87.                 for (let j = 0; j < lrcAr.length; j++) {
    88.                         if (aud.currentTime >= lrcAr[j][0]) {
    89.                                 if (curkey === j) showLrc(lrcAr[j][2]);
    90.                                 else continue;
    91.                         }
    92.                 }
    93.         };

    94.         aud.onended = () => {
    95.                 curkey = 0;
    96.                 aud.play();
    97.         }

    98.         aud.onseeked = () => calcKey();
    99. }
    复制代码


    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1897

    主题

    33万

    回帖

    39万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2026-5-5 22:09 | 显示全部楼层
    又是带三个额外小播的,这次还带歌词同步了,真棒。
    欣赏黑黑好帖
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2026-5-5 08:50
  • 签到天数: 1808 天

    [LV.Master]伴坛终老

    3209

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2026-5-5 22:10 | 显示全部楼层
    红影 发表于 2026-5-5 22:09
    又是带三个额外小播的,这次还带歌词同步了,真棒。
    欣赏黑黑好帖

    这个帖子主要做发单曲+歌词演示用,其他东东没做多大修改
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2026-5-5 08:50
  • 签到天数: 1808 天

    [LV.Master]伴坛终老

    3209

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2026-5-5 22:11 | 显示全部楼层
    红影 发表于 2026-5-5 22:07
    好听的低音炮,歌词充满画面感与情绪张力,通过“红色的舞蹈”、“蓝色酒杯”、“海边的微笑”、“风吹过的 ...

    风格有点接近赵雷
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|手机版|Archiver|服务支持:DZ动力|huachaowang.com Inc. ( 蜀ICP备17032287号-1 )

    GMT+8, 2026-5-6 00:13 , Processed in 0.095913 second(s), 26 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表