恋曲1990
本帖最后由 有声有色 于 2026-3-19 13:59 编辑 <br /><br /><div class="t_fsz"><table cellspacing="0" cellpadding="0"><tr><td class="t_f" id="postmessage_1896529">
<i class="pstatus"> </i><br /><br /><style type="text/css">
#papa {
width: 1200px;height: 710px;position:relative; --state:paused;
box-shadow:0px 0px 1px 2px #045768, 0px 0px 0px 8px #99e5f5,0px 0px 5px 15px #045768;
overflow:hidden;border-radius:1%;display:grid; place-items:center;
margin-top:100px;margin-LEFT: -310px;
}
.vid { position: absolute; width: 1500px; height: 710px; object-fit: cover; opacity: 1; }
.mypic { position: absolute; width: 10px; height: 10px;left: 82px;top: 380px; }
#baiBox {
width: 500px;
height: 50px;
text-align: center;
font-family:微软简中圆;
font-size: 2.0rem;
font-weight: bold;
color: #f46ff6;
transform-origin: top;
animation: yao 1.0s linear infinite alternate;
position:absolute;left:50px;top:30px;/*位置设置*/
}
@keyframes yao {
from{transform: perspective(800px) rotatex(30deg); }
to { transform: perspective(800px) rotatex(-30deg); }
}
.tit { position: relative;width: 500px;height: 30px;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) }
css-doodle { position: absolute; }
</style>
<div id="papa">
<metaname="referrer" content="never">
<video frameborder="0" class="vid"src="https://txmov2.a.kwimgs.com/upic/2026/02/24/06/BMjAyNjAyMjQwNjU2MTRfODk4OTU4MThfMTg4NzUzOTY2OTYwXzJfMw==_b_Be3614f1fe638068457917b57d7266ead.mp4" autoplay muted loop="" controls="" style="MARGIN-TOP:0px;MARGIN-LEFT:0px;background:#000 ;width:1380px; height: 750px;-webkit-mask-image: radial-gradient(black 100%, transparent 100%);position:absolute;left:0px;top:0px;"></video> </video>
<img class="mypic" src="https://z3.ax1x.com/2021/08/26/hujGMd.gif" alt="" />
<css-doodle grid="16" id="fFloat">
:doodle {
@size: 1200px 680px;
}
position: absolute;
left: @r(255)%;
top: -10%;
:after {
position: absolute;
content: '@p(life, ♬, ♪, ♩,♫, ∮, ✲, ❉, ❤,, ☺, ★, ☆,ideal, ❄)';
color:#ffffff;
font-size: @r(15, 25)px;
}
animation: fall 40s @r(-6, 36)s infinite var(--state);
@keyframes fall {
from { transform: rotate(0deg) translate(0px); }
to { transform: rotate(@r(-250,160)deg) translate(-1500px); }
}
</css-doodle>
<css-doodle id="mplayer">
:doodle {
@grid: 2 / 500px 100px;
color: var(--color);
bottom: 70px;
z-index: 999;
--prog: 0%;
--size: 60px;
--ttmsg1: '00:00';
--ttmsg2: '00:00';
--color: #fb8a2f;
position:absolute;
}
/* 时间信息 : 左 */
@nth(1) {@place: 5% 100%; :after { content: var(--ttmsg1); } }
/* 控制器 */
@nth(2) {
@size: 60px;
@shape: windmill;
@place: 50% 35%;
background: var(--color);
animation: rot 6s infinite linear var(--state);
}
/* 时间信息 : 右 */
@nth(3) {
@place: 95% 100%;
:after { content: var(--ttmsg2); }
}
/* 进度条 */
@nth(4) {
@place: 50% 80%;
@size: 100% 2px;
background: Silver;
display: grid;
place-items: center start;
:before {
content: '';
width: var(--prog);
height: 100%;
background: var(--color);
}
}
@keyframes rot { to { transform: rotate(1turn); } }
</css-doodle>
<css-doodle id="lrc">
:doodle {
@size: auto 3.5em;
bottom: 20px;
--geci: "花潮lrc在线";
--motion: cover2;
--tt: 1s;
position:absolute;
}
/* 单元格两个伪元素显示lrc歌词 */
display: grid;
place-items: center start;
:before, :after {
content: var(--geci);
color: snow; /* 歌词底色 */
font: bold 2.4em sans-serif;
text-shadow: 1px 1px 1px #000;
white-space: pre;
}
:after {
position: absolute;
width: 0;
color: #18f978; /* 同步歌词颜色 */
overflow: hidden;
animation: var(--motion) var(--tt) linear forwards var(--state);
}
@keyframes cover1 { from { width: 0; } to { width: 100%; } }
@keyframes cover2 { from { width: 0; } to { width: 100%; } }
</css-doodle>
<div id="baiBox">
<div class="tit">
<span style="color:#fb52f9;"><span style="font-size:32px;">《恋曲1990》</span>
<span style="color:#3d46f7;"><span style="font-size:20px;"> -学 唱</span>
</div></div>
<div style="position:absolute;bottom:10px;right:50px;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 style="position:absolute;bottom:20px;left:50px;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:#3d46f7;"><span style="font-family:微软雅黑;"><span style="font-size:24px;"></span></span></span></p></div>
<audio id="aud" src="http://cccimg.com/view.php/64070b94dbd7cfa944659738596cfb6e.mp3" autoplay loop></audio>
</div>
<script>
(function() {
let slip = 0.5, mFlag = true, mKey = 0, clickIdx = 0, progChg = 0, cursors = ['default','pointer','pointer'];
let lrcAr = [
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
];
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 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 mState = () => aud.paused ? (papa.style.setProperty('--state', 'paused') ) : (papa.style.setProperty('--state','running'));
let showLrc = (time) => {lrc.style.setProperty('--motion', mFlag ? 'cover1' : 'cover2');lrc.style.setProperty('--geci', '"' + lrcAr + '"');lrc.style.setProperty('--tt', time + 's');mKey += 1;mFlag = !mFlag;};
aud.addEventListener('play', mState, false);
aud.addEventListener('pause', mState, false);
aud.addEventListener('seeked', () => calcKey());
aud.addEventListener('timeupdate', () => {for (j = 0; j < lrcAr.length; j++) {if (aud.currentTime - slip >= lrcAr) {cKey = j;if (mKey === j) showLrc(lrcAr);else continue;}}mplayer.style.setProperty('--ttmsg1', `'${toMin(aud.currentTime)}'`);mplayer.style.setProperty('--ttmsg2', `'${toMin(aud.duration-aud.currentTime)}'`);mplayer.style.setProperty('--prog',`${100 * aud.currentTime / aud.duration}%`);});
mplayer.onclick = () => {if(clickIdx === 1) aud.paused ? aud.play() : aud.pause();if(clickIdx === 2) aud.currentTime = progChg;};
mplayer.onmousemove = (e) => {let size = parseInt(window.getComputedStyle(mplayer).getPropertyValue('--size')), ww = mplayer.offsetWidth, hh = mplayer.offsetHeight;clickIdx = e.offsetY > hh/1.5 ? 2 : (e.offsetX > (ww - size)/2 && e.offsetX < (ww + size)/2 && e.offsetY < hh/1.5 ? 1 : 0);mplayer.style.cursor = cursors;if(clickIdx > 1) progChg = aud.duration * e.offsetX / ww;};
})();
(function() {
let vid = document.querySelector('.vid');
let script = document.createElement('script');
script.src = 'https://unpkg.com/css-doodle@0.34.8/css-doodle.min.js';
document.head.appendChild(script);
let mState = () => aud.paused ? (papa.style.setProperty('--state', 'paused'), vid.pause()) : (papa.style.setProperty('--state', 'running'), vid.play());
aud.addEventListener('play', mState, false);
aud.addEventListener('pause', mState, false);
mplayer.onclick = () => aud.paused ? aud.play() : aud.pause();
})();
</script>
</td></tr></table>
这个对口型唱歌有这么长的时间可以唱啊?有声老师太棒了!祝新春快乐!{:4_187:} 这是你自己唱的啊!唱得好听,还把字幕都 配上了。厉害哦!{:4_199:} 看到是自学自唱,原来是有声有色老师自己唱的,为什么不发翻唱版,这么好的歌呢{:4_204:} 这首是罗大佑的歌,应该是恋曲1990啊,怎么成了1999{:4_173:} AI制作对口型,这个制作很棒,嘴形准确。
好像背景图上有代码,这个不知道怎么回事呢{:4_203:} AI制作对口型,这个制作很棒,嘴形准确。
好像背景图上有代码,这个不知道怎么回事呢{:4_203:} 演唱好听,给有声有色老师点赞{:4_187:} 太棒了,居然还做了个播放器上去{:4_178:} 梦江南 发表于 2026-2-23 15:56
这是你自己唱的啊!唱得好听,还把字幕都 配上了。厉害哦!
谢谢鼓励 好长时间没做啦。歌词与音乐还是没全对上,看到红影的回复,题目写错了,现在改回来了,哈哈口型就对不上了。 红影 发表于 2026-2-23 19:45
AI制作对口型,这个制作很棒,嘴形准确。
好像背景图上有代码,这个不知道怎么回事呢
第一次用LRC做歌词对口型的音画,哈哈出来不少差错,现在已改正过来了 就是对口型不能使用了,今天有空再做一个对口型的歌曲。
今天上班了吧愿新的一年一切都顺顺利利! 小辣椒 发表于 2026-2-23 23:24
太棒了,居然还做了个播放器上去
谢谢辣椒老师鼓励 新年快乐 有声有色 发表于 2026-2-24 07:30
第一次用LRC做歌词对口型的音画,哈哈出来不少差错,现在已改正过来了 就是对口型不能使用了,今天有空再 ...
做得很好啊,有声有色老师唱歌也很好听呢{:4_187:}
页:
[1]