小辣椒 发表于 2025-5-5 14:32

杨帆 发表于 2025-5-5 00:05
好啊,只是带有频谱的帖子直接代码发,比如音乐、频谱效果就没有了。晚安~

哦,这样啊,主要这种类型的制作我没有做过,特别加这么多视频的,手机一般看不见效果,我很少玩的

杨帆 发表于 2025-5-5 15:30

小辣椒 发表于 2025-5-5 14:32
哦,这样啊,主要这种类型的制作我没有做过,特别加这么多视频的,手机一般看不见效果,我很少玩的

你可以制作一个呀,也挺好玩的{:4_187:}

杨帆 发表于 2025-5-5 15:36

本帖最后由 杨帆 于 2025-5-5 15:44 编辑 <br /><br /><!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>【古风纯音】荷塘翠叶连</title>
</head>
<body>
<style>
#papa {
        margin: 100px 0 30px calc(50% - 781px);
        width: 1400px;
        height: 760px;
        background: url('https://file.uhsea.com/2505/4c3e7e98a61eabfb21ce40b1a7fbf629EN.jpg') no-repeat center/cover;
        mix-blend-mode: darken;
        pointer-events: none;
        overflow: hidden;
        position: relative;
        z-index:1;
}
#vid1{
    position: absolute;
    top:0px;
    left:0%;
    width: 100%;
    height:100%;
   mix-blend-mode: multiply;
    opacity: 0.9;   
    object-fit: cover;
}
#vid2 {
        position: absolute;
        width: 100%;
        height:100%;
        object-fit:fill;
        mix-blend-mode: screen;
        -webkit-mask: linear-gradient(to right top, red 0%, transparent 90%, transparent);
        pointer-events: none;
}
#vid3{
        position: absolute;
        width: 100%;
        height:100%;
      object-fit:fill;
      opacity: 0.6;   
        mix-blend-mode: screen;
        -webkit-mask: linear-gradient(to top, red 0%, transparent 60%, transparent);
        pointer-events: none;
}
#player {
    position: absolute;
    top:30px;
    left:30px;
    width: 120px;
    height: 120px;
    cursor: pointer;
    pointer-events: auto;
    border-radius: 50%;
    opacity: .8;
    animation: rot 8s linear infinite var( --state) ;
    --state: running;

}
#player:hover { filter: hue-rotate(90deg); }
@keyframes rot { to { transform: rotate(360deg); } }

#canv {display: block; position: absolute;width:100%; height: 180px; bottom: 0px; left: 0px;z-index:4; animation: sp 1s linear infinite;}
@keyframes sp {
      0% { filter:hue-rotate(360deg)contrast(150%)brightness(80%); }
}
</style>
<div id="papa">
   <canvas id='canv' width="1286" height="250"></canvas>
    <video id="vid1" src="https://imgpp.ztupic.com/u/30j5Llsx4y/1599104785483_4d8b815a.mp4" autoplay loop muted></video>
    <video id="vid2" src="https://img.tukuppt.com/video_show/09/02/16/60c9bc9e86513.mp4" autoplay loop muted></video>
    <video id="vid3" src="https://www.kumeiwp.com/wj/221936/2024/07/29/7ee5fcee53685d8b7a583442b043e12a.mp4" autoplay loop muted></video>
   <audio id="aud" src="https://file.uhsea.com/2505/21e473e6011149edfaf0294b620d78a5HI.mp3" autoplay loop></audio>
    <img id="player" alt="" src="https://pic1.imgdb.cn/item/67e576870ba3d5a1d7e569a8.png" title="播放/暂停" />
</div>
   <script>
   player.onclick = () => {
      aud.paused ? (aud.play(),vid1.play() ,vid2.play(),vid3.play()) : (aud.pause(),vid1.pause() , vid2.pause(), vid3.pause());
      player.style.setProperty('--state', aud.paused ? 'paused' : 'running');
};
   
(function () {

        let Act = new AudioContext();

        let audSrc = Act.createMediaElementSource(aud);

        let analyser = Act.createAnalyser();

        audSrc.connect(analyser);

        analyser.connect(Act.destination);

        let ctx = canv.getContext('2d');

        let width = canv.width;

        let height = canv.height;

        let ppColor = ctx.createLinearGradient(250,200,250,0);

        ppColor.addColorStop(0.8, '#fff000');

        ppColor.addColorStop(1, '#00ff00');

        ppColor.addColorStop(0.8, '#fff000');

        let ppNum = 1286;

        let voiceHeight = new Uint8Array(analyser.frequencyBinCount);



        (function draw() {

                analyser.getByteFrequencyData(voiceHeight);

                let step = Math.round(voiceHeight.length / ppNum);

                ctx.clearRect(0, 0, width, height);

                for (let j = 0; j < ppNum; j++) {

                        let audiheighteight = voiceHeight;

                        ctx.fillStyle = ppColor;

                        ctx.fillRect(width / 2+ (j * 1), height, 2, -audiheighteight);

                        ctx.fillRect(width / 2- (j * 1), height, 2, -audiheighteight);

                }

                window.requestAnimationFrame(draw);

        })();
})();
</script>
</body>
</html>

绿叶清舟 发表于 2025-5-5 20:41

杨帆 发表于 2025-5-4 22:56
浏览器原因?就是一个网页链接呀

用的百分浏览器,换了系统自带的也不行了
页: 1 [2]
查看完整版本: 【古风纯音】荷塘翠叶连