雁荡山之美
本帖最后由 起个网名好难 于 2024-12-18 06:23 编辑 <br /><br /><meta name="referrer" content="never"><style>
@import url(https://file.uhsea.com/2403/f45f79bba93cd62f8603eae6fa88eb78YS.css);
:root {--rState:running;}
#oBlk {
width:680px;height:800px;margin:80px auto;
display: grid;background-color:hsl(240, 35%, 95%);
place-items:center;position:relative;
grid-template-rows:100%;
grid-template-columns:80px 600px;
box-shadow:3px 3px 8px darkgray;
overflow:hidden;border-radius:24px;
padding:12px;font-size:14px;
}
#showSVG {
width:600px;height:800px; margin:8px; overflow:hidden; border-radius:12px;background-color:tan;
}
#picture {
-webkit-mask-image: radial-gradient(black 23%, transparent 85%);
-webkit-mask-size: cover;z-index:1;border-radius:16px;
}
/** 不满意一般设置也可以调整下 */
.lrcShow {
font: normal 2.5em 楷体;
pointer-events:none;width:1.5em;height:80%;
filter: drop-shadow(1px 0px 0px white) drop-shadow(-1px 0px 0px white) drop-shadow(0px 1px 0px white) drop-shadow(0px -1px 0px white);
writing-mode: vertical-rl;z-index:99;left:15px;top:50px;color:hsla(240,60%, 90%, 0.7);
}
.lrcShow::before {
writing-mode: vertical-rl;
}
@keyframes bgMove0 { from { width: 100%; height: 0; } to { width: 100%; height: 100%; } }
@keyframes bgMove1 { from { width: 100%; height: 0; } to { width: 100%; height: 100%; } }
#processMeter {position: absolute; left:0px; bottom:40px; width: 160px; height:80px; cursor: pointer; z-index:999;transform:translate(-35px) rotate(90deg);}
#mCtrl{transform-origin:50%;animation:rot 5s linear infinite var(--rState);}
@keyframes rot{to{transform: rotate(1turn)}}
</style>
<div id="oBlk">
<div id="lrc"></div>
<div id="showSVG">
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 3240 4320" id="sObj" >
<image id="p0" xlink:href="https://mmbiz.qpic.cn/mmbiz_jpg/8d7nw2S9VrCWuaChEEWXdnVrYK7g9Qanc64PpIV5J3mNKAzEE32u6iaZMUnk8eibLmiceVloTntndroDbQSCkQ1gg/640" width="1080" height="1440" x="0" y="0" opacity="0" preserveAspectRatio="none">
<animate id="bp0" attributeName="opacity" from="0" to="1" dur="2" begin="0;clrs.end+2" fill="freeze"></animate>
<animate attributeName="x" from="0" to="0" dur="2" begin="bp0.begin" fill="freeze"></animate>
<animate attributeName="y" from="0" to="0" dur="2" begin="bp0.begin" fill="freeze"></animate>
<animate attributeName="width" from="1080" to="3240" dur="2" begin="bp0.begin" fill="freeze"></animate>
<animate attributeName="height" from="1440" to="4320" dur="2" begin="bp0.begin" fill="freeze"></animate>
<animate attributeName="x" to="0" from="0" dur="2" begin="bp0.begin+10" fill="freeze" id="ep0"></animate>
<animate attributeName="y" to="0" from="0" dur="2" begin="bp0.begin+10" fill="freeze"></animate>
<animate attributeName="width" to="1080" from="3240" dur="2" begin="bp0.begin+10" fill="freeze"></animate>
<animate attributeName="height" to="1440" from="4320" dur="2" begin="bp0.begin+10" fill="freeze"></animate>
<animate attributeName="opacity" to="0" from="1" dur="2" begin="clrs.begin" fill="freeze"></animate>
</image>
<image id="p1" xlink:href="https://mmbiz.qpic.cn/mmbiz_jpg/8d7nw2S9VrCWuaChEEWXdnVrYK7g9QanFhgOffvJMdXX0shXD7sfnricDxf4EIOZctyYuUibNWIQnus5QlBmUFjA/640" width="1080" height="1440" x="1080" y="0" opacity="0" preserveAspectRatio="none">
<animate id="bp1" attributeName="opacity" from="0" to="1" dur="2" begin="ep0.end" fill="freeze"></animate>
<animate attributeName="x" from="1080" to="0" dur="2" begin="bp1.begin" fill="freeze"></animate>
<animate attributeName="y" from="0" to="0" dur="2" begin="bp1.begin" fill="freeze"></animate>
<animate attributeName="width" from="1080" to="3240" dur="2" begin="bp1.begin" fill="freeze"></animate>
<animate attributeName="height" from="1440" to="4320" dur="2" begin="bp1.begin" fill="freeze"></animate>
<animate attributeName="x" to="1080" from="0" dur="2" begin="bp1.begin+10" fill="freeze" id="ep1"></animate>
<animate attributeName="y" to="0" from="0" dur="2" begin="bp1.begin+10" fill="freeze"></animate>
<animate attributeName="width" to="1080" from="3240" dur="2" begin="bp1.begin+10" fill="freeze"></animate>
<animate attributeName="height" to="1440" from="4320" dur="2" begin="bp1.begin+10" fill="freeze"></animate>
<animate attributeName="opacity" to="0" from="1" dur="2" begin="clrs.begin" fill="freeze"></animate>
</image>
<image id="p2" xlink:href="https://mmbiz.qpic.cn/mmbiz_jpg/8d7nw2S9VrCWuaChEEWXdnVrYK7g9Qan3bzheZ8ghIv9BmmLIaGx8F9AcLgH4OzlkYkENWHtMiaJfexDj6d4gSw/640" width="1080" height="1440" x="2160" y="0" opacity="0" preserveAspectRatio="none">
<animate id="bp2" attributeName="opacity" from="0" to="1" dur="2" begin="ep1.end" fill="freeze"></animate>
<animate attributeName="x" from="2160" to="0" dur="2" begin="bp2.begin" fill="freeze"></animate>
<animate attributeName="y" from="0" to="0" dur="2" begin="bp2.begin" fill="freeze"></animate>
<animate attributeName="width" from="1080" to="3240" dur="2" begin="bp2.begin" fill="freeze"></animate>
<animate attributeName="height" from="1440" to="4320" dur="2" begin="bp2.begin" fill="freeze"></animate>
<animate attributeName="x" to="2160" from="0" dur="2" begin="bp2.begin+10" fill="freeze" id="ep2"></animate>
<animate attributeName="y" to="0" from="0" dur="2" begin="bp2.begin+10" fill="freeze"></animate>
<animate attributeName="width" to="1080" from="3240" dur="2" begin="bp2.begin+10" fill="freeze"></animate>
<animate attributeName="height" to="1440" from="4320" dur="2" begin="bp2.begin+10" fill="freeze"></animate>
<animate attributeName="opacity" to="0" from="1" dur="2" begin="clrs.begin" fill="freeze"></animate>
</image>
<image id="p3" xlink:href="https://mmbiz.qpic.cn/mmbiz_jpg/8d7nw2S9VrCWuaChEEWXdnVrYK7g9QanJN2gUE84t2iazy4icH5w14pNketCR66yTcNTr5OTLMmw2pxbN3nsqqiaQ/640" width="1080" height="1440" x="0" y="1440" opacity="0" preserveAspectRatio="none">
<animate id="bp3" attributeName="opacity" from="0" to="1" dur="2" begin="ep2.end" fill="freeze"></animate>
<animate attributeName="x" from="0" to="0" dur="2" begin="bp3.begin" fill="freeze"></animate>
<animate attributeName="y" from="1440" to="0" dur="2" begin="bp3.begin" fill="freeze"></animate>
<animate attributeName="width" from="1080" to="3240" dur="2" begin="bp3.begin" fill="freeze"></animate>
<animate attributeName="height" from="1440" to="4320" dur="2" begin="bp3.begin" fill="freeze"></animate>
<animate attributeName="x" to="0" from="0" dur="2" begin="bp3.begin+10" fill="freeze" id="ep3"></animate>
<animate attributeName="y" to="1440" from="0" dur="2" begin="bp3.begin+10" fill="freeze"></animate>
<animate attributeName="width" to="1080" from="3240" dur="2" begin="bp3.begin+10" fill="freeze"></animate>
<animate attributeName="height" to="1440" from="4320" dur="2" begin="bp3.begin+10" fill="freeze"></animate>
<animate attributeName="opacity" to="0" from="1" dur="2" begin="clrs.begin" fill="freeze"></animate>
</image>
<image id="p4" xlink:href="https://mmbiz.qpic.cn/mmbiz_jpg/8d7nw2S9VrCWuaChEEWXdnVrYK7g9QanIvLGlDyvcGLCAA3YibL08p8RYZydgMkPPYU0ZQ1picjCHN13giayR3mCQ/640" width="1080" height="1440" x="1080" y="1440" opacity="0" preserveAspectRatio="none">
<animate id="bp4" attributeName="opacity" from="0" to="1" dur="2" begin="ep3.end" fill="freeze"></animate>
<animate attributeName="x" from="1080" to="0" dur="2" begin="bp4.begin" fill="freeze"></animate>
<animate attributeName="y" from="1440" to="0" dur="2" begin="bp4.begin" fill="freeze"></animate>
<animate attributeName="width" from="1080" to="3240" dur="2" begin="bp4.begin" fill="freeze"></animate>
<animate attributeName="height" from="1440" to="4320" dur="2" begin="bp4.begin" fill="freeze"></animate>
<animate attributeName="x" to="1080" from="0" dur="2" begin="bp4.begin+10" fill="freeze" id="ep4"></animate>
<animate attributeName="y" to="1440" from="0" dur="2" begin="bp4.begin+10" fill="freeze"></animate>
<animate attributeName="width" to="1080" from="3240" dur="2" begin="bp4.begin+10" fill="freeze"></animate>
<animate attributeName="height" to="1440" from="4320" dur="2" begin="bp4.begin+10" fill="freeze"></animate>
<animate attributeName="opacity" to="0" from="1" dur="2" begin="clrs.begin" fill="freeze"></animate>
</image>
<image id="p5" xlink:href="https://mmbiz.qpic.cn/mmbiz_jpg/8d7nw2S9VrCWuaChEEWXdnVrYK7g9QanDUziasp5iaVgFdcnpWhQSqOc1ibsJSGqdFUCNgaKk4rVABbo0IicXpqz2A/640" width="1080" height="1440" x="2160" y="1440" opacity="0" preserveAspectRatio="none">
<animate id="bp5" attributeName="opacity" from="0" to="1" dur="2" begin="ep4.end" fill="freeze"></animate>
<animate attributeName="x" from="2160" to="0" dur="2" begin="bp5.begin" fill="freeze"></animate>
<animate attributeName="y" from="1440" to="0" dur="2" begin="bp5.begin" fill="freeze"></animate>
<animate attributeName="width" from="1080" to="3240" dur="2" begin="bp5.begin" fill="freeze"></animate>
<animate attributeName="height" from="1440" to="4320" dur="2" begin="bp5.begin" fill="freeze"></animate>
<animate attributeName="x" to="2160" from="0" dur="2" begin="bp5.begin+10" fill="freeze" id="ep5"></animate>
<animate attributeName="y" to="1440" from="0" dur="2" begin="bp5.begin+10" fill="freeze"></animate>
<animate attributeName="width" to="1080" from="3240" dur="2" begin="bp5.begin+10" fill="freeze"></animate>
<animate attributeName="height" to="1440" from="4320" dur="2" begin="bp5.begin+10" fill="freeze"></animate>
<animate attributeName="opacity" to="0" from="1" dur="2" begin="clrs.begin" fill="freeze"></animate>
</image>
<image id="p6" xlink:href="https://mmbiz.qpic.cn/mmbiz_jpg/8d7nw2S9VrCWuaChEEWXdnVrYK7g9QanTFa2tYv7Rric1pgcS6GibXMLNPvJ6PT1Et9LCvDeI42lawQhPIN0mkVA/640" width="1080" height="1440" x="0" y="2880" opacity="0" preserveAspectRatio="none">
<animate id="bp6" attributeName="opacity" from="0" to="1" dur="2" begin="ep5.end" fill="freeze"></animate>
<animate attributeName="x" from="0" to="0" dur="2" begin="bp6.begin" fill="freeze"></animate>
<animate attributeName="y" from="2880" to="0" dur="2" begin="bp6.begin" fill="freeze"></animate>
<animate attributeName="width" from="1080" to="3240" dur="2" begin="bp6.begin" fill="freeze"></animate>
<animate attributeName="height" from="1440" to="4320" dur="2" begin="bp6.begin" fill="freeze"></animate>
<animate attributeName="x" to="0" from="0" dur="2" begin="bp6.begin+10" fill="freeze" id="ep6"></animate>
<animate attributeName="y" to="2880" from="0" dur="2" begin="bp6.begin+10" fill="freeze"></animate>
<animate attributeName="width" to="1080" from="3240" dur="2" begin="bp6.begin+10" fill="freeze"></animate>
<animate attributeName="height" to="1440" from="4320" dur="2" begin="bp6.begin+10" fill="freeze"></animate>
<animate attributeName="opacity" to="0" from="1" dur="2" begin="clrs.begin" fill="freeze"></animate>
</image>
<image id="p7" xlink:href="https://mmbiz.qpic.cn/mmbiz_jpg/8d7nw2S9VrCWuaChEEWXdnVrYK7g9QanJQibCJNjCZqcYqTjicY2bbkvLnWiagia2AfS6aSkC8LeElznuAVibxNs5pQ/640" width="1080" height="1440" x="1080" y="2880" opacity="0" preserveAspectRatio="none">
<animate id="bp7" attributeName="opacity" from="0" to="1" dur="2" begin="ep6.end" fill="freeze"></animate>
<animate attributeName="x" from="1080" to="0" dur="2" begin="bp7.begin" fill="freeze"></animate>
<animate attributeName="y" from="2880" to="0" dur="2" begin="bp7.begin" fill="freeze"></animate>
<animate attributeName="width" from="1080" to="3240" dur="2" begin="bp7.begin" fill="freeze"></animate>
<animate attributeName="height" from="1440" to="4320" dur="2" begin="bp7.begin" fill="freeze"></animate>
<animate attributeName="x" to="1080" from="0" dur="2" begin="bp7.begin+10" fill="freeze" id="ep7"></animate>
<animate attributeName="y" to="2880" from="0" dur="2" begin="bp7.begin+10" fill="freeze"></animate>
<animate attributeName="width" to="1080" from="3240" dur="2" begin="bp7.begin+10" fill="freeze"></animate>
<animate attributeName="height" to="1440" from="4320" dur="2" begin="bp7.begin+10" fill="freeze"></animate>
<animate attributeName="opacity" to="0" from="1" dur="2" begin="clrs.begin" fill="freeze"></animate>
</image>
<image id="p8" xlink:href="https://mmbiz.qpic.cn/mmbiz_jpg/8d7nw2S9VrCWuaChEEWXdnVrYK7g9QanF7Urianb33nDnVclHmRxE5cjHDYIgsWs8JWsz6DrUZW6NaicEEhJuFQg/640" width="1080" height="1440" x="2160" y="2880" opacity="0" preserveAspectRatio="none">
<animate id="bp8" attributeName="opacity" from="0" to="1" dur="2" begin="ep7.end" fill="freeze"></animate>
<animate attributeName="x" from="2160" to="0" dur="2" begin="bp8.begin" fill="freeze"></animate>
<animate attributeName="y" from="2880" to="0" dur="2" begin="bp8.begin" fill="freeze"></animate>
<animate attributeName="width" from="1080" to="3240" dur="2" begin="bp8.begin" fill="freeze"></animate>
<animate attributeName="height" from="1440" to="4320" dur="2" begin="bp8.begin" fill="freeze"></animate>
<animate attributeName="x" to="2160" from="0" dur="2" begin="bp8.begin+10" fill="freeze" id="ep8"></animate>
<animate attributeName="y" to="2880" from="0" dur="2" begin="bp8.begin+10" fill="freeze"></animate>
<animate attributeName="width" to="1080" from="3240" dur="2" begin="bp8.begin+10" fill="freeze"></animate>
<animate attributeName="height" to="1440" from="4320" dur="2" begin="bp8.begin+10" fill="freeze"></animate>
<animate id="clrs" attributename="opacity" to="0" from="1" begin="bp8.begin+15" dur="2" fill="freeze"></animate>
</image>
</svg>
</div>
<div id="processMeter">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 100" id="svgObj">
<radialGradient r="0.8" id="rg">
<stop offset="0.1" stop-color="hsl(0, 70%, 50%)"></stop>
<stop offset="0.5" stop-color="hsl(10, 70%, 75%)"></stop>
<stop offset="1" stop-color="hsl(30, 70%, 90%)"></stop>
</radialGradient>
<path d="M 100 50 A 20 13.333333333333334 0 0 0 140 50 A 20 13.333333333333334 0 0 0 100 50 A 20 13.333333333333334 72 0 0 112.36067977499789 88.04226065180615 A 20 13.333333333333334 72 0 0 100 50 A 20 13.333333333333334 144 0 0 67.63932022500211 73.51141009169893 A 20 13.333333333333334 144 0 0 100 50 A 20 13.333333333333334 216 0 0 67.63932022500211 26.48858990830108 A 20 13.333333333333334 216 0 0 100 50 A 20 13.333333333333334 288 0 0 112.36067977499789 11.957739348193854 A 20 13.333333333333334 288 0 0 100 50 " fill-rule="evenodd" fill="url(#rg)" id="mCtrl"></path>
<g stroke-width="8">
<path id="bgc" d="M 100 5 A 95 45 0 0 1 100 95 A95 45 0 0 1 100 5 " stroke="pink" fill="none"></path>
<path id="fgc" d="M 100 5 A 95 45 0 0 1 100 95 A95 45 0 0 1 100 5 " stroke="snow" fill="none"></path>
</g>
<g text-anchor="middle" dominant-baseline="middle" fill="red" style="font: bold 32px;">
<text x="82%" y="50%" id="durTime">00:00</text>
<text x="18%" y="50%" id="curTime">00:00</text>
</g>
</svg>
</div>
<div class="lrcShow" data-lrc="雁荡山之美"></div>
</div>
<script>
var sf0 = document.createElement('script');
sf0.type = 'text/javascript';
sf0.src = "https://file.uhsea.com/2410/739c572b5176f670f350463cf9ade957QB.js";
sf0.charset = "utf-8";
document.body.appendChild(sf0);
sf0.onload = () => {
const lrctxt = `
雁荡山之美
演唱:邹希梅(雪中情)
美丽的雁荡山
让人流连忘返
青青的山碧绿的水
青山绿水紧相连
白云飘过雁荡山
问天下第一瀑布
疑是银河落九天
雁荡山神奇的雁荡山
你巍峨耸立好一幅美画卷
雁荡山可爱的雁荡山
轻轻的溪水潺潺
诉说真情永远
美丽的雁荡山
让人梦绕魂牵
古人的诗今人的歌
多少文人把你赞
游人做客雁荡山
如享莺歌燕舞
醉了多少心田
雁荡山梦中的雁荡山
你巍峨耸立好一幅美画卷
雁荡山梦中的雁荡山
清清的溪水潺潺
诉说真情永远
雁荡山梦中的雁荡山
你巍峨耸立诉说真情永远
诉说真情永远
`;
let opts = {
lrcTxt:lrctxt,
audioURL:"https://cccimg.com/view.php/ab9ca5db1e88464cb753a740000d2723.m4a",
}
let lrcPlayer = new lrcPlayerY(opts);
// 格式化时间数据
let formatTime = (time) => {
let min = ('' + parseInt(time / 60)).padStart(2,'0');
let sec = ('' + parseInt(time % 60)).padStart(2,'0');
return (`${min}:${sec}`);
};
// 计算/设置控制路径有关的数据
let circlePoints = [];
let bgcLen = bgc.getTotalLength();
fgc.style.strokeDasharray = bgc.style.strokeDasharray = bgcLen;
for(let i = 0; i < bgcLen; i++) {
circlePoints.push(bgc.getPointAtLength(i));
}
// 在 timeupdate 事件处理中添加与控制路径有关的处理
lrcPlayer.mObj.addEventListener('timeupdate', function() {
let processValue = lrcPlayer.mObj.currentTime / lrcPlayer.mObj.duration;
fgc.style.strokeDashoffset = bgcLen * (1 - processValue);
durTime.textContent = formatTime(lrcPlayer.mObj.duration);
curTime.textContent = formatTime(lrcPlayer.mObj.currentTime);
});
// 动态元素监测
let runState = () => {
lrcPlayer.mObj.paused
? (mCtrl.style.setProperty('--rState','paused'),sObj.pauseAnimations())
: (mCtrl.style.setProperty('--rState','running'),sObj.unpauseAnimations());
}
// SVG viewBox 与 实际尺寸的比值
let factorX = svgObj.viewBox.baseVal.width / svgObj.clientWidth;
let factorY = svgObj.viewBox.baseVal.height / svgObj.clientHeight;
//console.log(factorX, factorY);
// 歌曲进度条鼠标移动处理
let seeking = false;
let moveEventProc = (event) => {
if(!seeking) return;
let thePoint = 0, minV = 100;
circlePoints.forEach((point, idx ) => {
let mx = (point.x - event.offsetX * factorX), my = (point.y - event.offsetY * factorY);
let mv = mx*mx + my*my;
if(mv < minV) {
minV = mv; thePoint = idx;
}
})
let chkVal = thePoint / bgcLen;
let chkTime = lrcPlayer.mObj.duration * chkVal;
fgc.style.strokeDashoffset = bgcLen * (1 - chkVal);
let fIdx = false;
lrcPlayer.lrcVec.forEach((lrc,idx) => {
if(!fIdx && lrc.seconds >= chkTime ) {
fIdx = !fIdx; lrcPlayer.idx = idx;
lrcPlayer.mObj.currentTime = chkTime;
return fIdx;
}
});
};
fgc.addEventListener("mousemove", (event) => moveEventProc(event));
bgc.addEventListener("mousemove", (event) => moveEventProc(event));
fgc.onclick = bgc.onclick = (event) => seeking = !seeking;
// 歌曲、歌词 及 动态元素 启/停控制
mCtrl.onclick = () => {
lrcPlayer.mObj.paused ? (lrcPlayer.mObj.play()) : (lrcPlayer.mObj.pause());
}
lrcPlayer.mObj.addEventListener('play', () => runState());
lrcPlayer.mObj.addEventListener('pause', () => runState());
lrcPlayer.mObj.play().catch(_ = () => runState());
}
</script> 老师辛苦了,谢谢老师精彩分享,如果能暂停就更好了{:4_190:} 杨帆 发表于 2024-12-17 21:45
老师辛苦了,谢谢老师精彩分享,如果能暂停就更好了
https://img.bbs.cnhubei.com/forum/201211/16/093730sa902nsh6zryf6sg.gif
点击花瓣可以实现暂停
起个网名好难 发表于 2024-12-17 21:56
点击花瓣可以实现暂停
是的,那就完美了,谢谢老师{:4_191:} 杨帆 发表于 2024-12-17 21:58
是的,那就完美了,谢谢老师
客气了 漂亮,一张张图片展示后,再缩小去填补背景,每一个都不会跑错位置呢{:4_187:} 难难把那播放器变成竖过来了呢,也很别致。{:4_204:} 红影 发表于 2024-12-17 22:28
漂亮,一张张图片展示后,再缩小去填补背景,每一个都不会跑错位置呢
https://img.bbs.cnhubei.com/forum/201211/16/093730sa902nsh6zryf6sg.gif
它们本来就排列好了只是没显出来{:5_106:} 一张张看过来,很壮美的雁荡山。令人向往的名胜呢。
欣赏难难好帖{:4_187:} 红影 发表于 2024-12-17 22:30
难难把那播放器变成竖过来了呢,也很别致。
没办法, 竖着才不会遮挡画面。 红影 发表于 2024-12-17 22:32
一张张看过来,很壮美的雁荡山。令人向往的名胜呢。
欣赏难难好帖
2000年后多次往温州跑也没去雁荡山游玩一次,现在只好看看图片了。 问候老师好!精美音画佳作,精心制作分享。为您点赞。{:5_116:}{:4_187:} 秋思梦景 发表于 2024-12-18 06:05
问候老师好!精美音画佳作,精心制作分享。为您点赞。
https://img.bbs.cnhubei.com/forum/201211/16/093730sa902nsh6zryf6sg.gif
https://p5.itc.cn/q_70/images03/20210115/cf2a49614083467d8b5186f78bd85524.gif
片片拍的好,制作更漂亮。 雁荡山我去过了,没有这照片漂亮。 欣赏点赞!{:4_199:} 手机无法欣赏欣赏,没有听音乐
雁荡山好美哦,难难出来没有底图吗?我看了二遍发现没有的