热搜: 活动 交友 discuz
查看: 202|回复: 10

[播放器] LMP34-澄影 皮肤上线

[复制链接]
发表于 2026-10-21 00:38:22 | 显示全部楼层 |阅读模式

LMP34-澄影

LMP34 播放器原生皮肤 · 透明背景 · 满屏视频 · 音画一体

LMP34 Player.jpg

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>LMP34 Player</title>
</head>
<body>
<!-- 播放器容器 -->
<div style="position:fixed;top:0;left:0;width:100%;height:100%;">
<div id="lmp34-player" style="width:100%;height:100%;"></div>
</div>
<!-- 引入你的嵌入脚本 -->
<script src="lmp34-embed.js"></script>
<!-- 初始化播放器 -->
<script>
LMP34.init({
url: '',//跳过默认配置初始化
container: 'lmp34-player', // 容器 ID// 跳过 config.xml
//bg_image: ?random=1随机 有2组背景 如果要固定id=1 id=2 .....我最近没多少时间 只用了2组背景后面添加更多
bg_image:'https://lmp34.cnlog.cc/image/slideshow.php?id=2',
plugins :'plugins/waveform,plugins/ktv',
lists: 'list.xml', // 播放列表
//bg_plugins 皮肤有视频区背景插件里不能配置 waveform,频谱显示在视频层 配置背景同样可显示但不能切换
bg_plugins:"",
skins: 'skins/lmp34-chengying',//皮肤
auto_play: 1,// 自动播放
console_offset: '0,0', //这个皮肤不支持设置
spectrum_id: 8,
ktv:0,//1、0 卡拉OK模式 1开0关
ktv_color: '#ff0000',//红色高亮
ktv_default_color : '#fff000',//其它行颜色黄色
ktv_size : '50',//歌词大小
name: 'LMP34 Player 音乐视频播放器', // 名称
link: 'https://www.cnlog.cc'// 你的主页

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


🎵
音乐播放 全格式支持,歌词自动同步滚动
🎬
视频播放 满屏无黑边,自动隐藏歌词层
🔊
喇叭静音开关 🔊/🔇 一键切换,实时跟随状态
🔴
红色高亮歌词 当前行红色大字,黑色立体描边
📜
可滚动列表 半透明面板 + 细滚动条 + 可输入搜索框
🎨
透明背景 所有窗口全透明,背景完整呈现
🖥️
全屏布局 控制台贴底、列表右侧滑出、歌词下方居中
⚡
零图片依赖 纯 CSS + Unicode 图标,只有 3 个文件
皮肤信息:
名称:LMP34-澄影 · 版本:4.0 · 作者:亚伦影音工作室
邮箱:1132765571@qq.com
目录:skins/lmp34-chengying
文件:skin.xml + skin.css + skin.js(无外部图片资源)
描述:透明背景,满屏视频,音画一体
🔗 相关链接:
播放器作者博客:https://www.cnlog.cc/
音画论坛:https://bbs.cnzv.cc/
皮肤作者主页:https://bbs.cnzv.cc/?32
世上无难事,实在不行就摇铃
发表于 2026-10-21 07:38:07 | 显示全部楼层
老师厉害,歌词也优化了!真的佩服!随便问问你的网盘上次我注册了现在咋不能进了?你打包的皮肤文件后缀名是什么!用的网盘也是你的吧!

点评

皮肤就3个文件 按钮用CSS伪元素徽章 简化了多余的文件 三个文件放在同一个文件夹里 播放器自动扫描这三个 网盘 你问 水芙蓉 我基本没管 她可开通管理网盘 skin.css skin.js skin.xml 这个和CMP4一样  详情 回复 发表于 2026-10-21 12:18
 楼主| 发表于 2026-10-21 12:18:49 | 显示全部楼层
亚伦影音工作室 发表于 2026-10-21 07:38
老师厉害,歌词也优化了!真的佩服!随便问问你的网盘上次我注册了现在咋不能进了?你打包的皮肤文件后缀名 ...

皮肤就3个文件   按钮用CSS伪元素徽章    简化了多余的文件    三个文件放在同一个文件夹里  播放器自动扫描这三个    网盘 你问 水芙蓉 我基本没管 她可开通管理网盘

skin.css
  1. html, body { margin: 0; padding: 0; width: 100%; height: 100%; overflow: hidden; background: transparent; }
  2. #lmp34-player { position: fixed; top: 0; left: 0; transform: none !important; width: 100vw; height: 100vh; overflow: hidden; background: transparent; }

  3. .lmp-window { position: absolute; box-sizing: border-box; overflow: hidden; }
  4. .lmp-window-media, .lmp-window-lrc, .lmp-window-console { background: transparent !important; border: none !important; }
  5. .lmp-window-media { z-index: 1; }
  6. .lmp-window-lrc { z-index: 5; }
  7. .lmp-window-console { z-index: 10; overflow: visible; }
  8. .lmp-window-list, .lmp-window-option { z-index: 20; }

  9. .lmp-video-container { position: relative; width: 100% !important; height: 100% !important; overflow: hidden !important; background: transparent !important; }
  10. .lmp-video-container video { width: 100% !important; height: 100% !important; object-fit: cover !important; display: block !important; background: transparent !important; }
  11. .lmp-cover { display: none !important; }
  12. .lmp-spectrum { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; }

  13. /* ================= 控制台按钮 ================= */
  14. .lmp-btn {
  15.   display: flex !important; align-items: center !important; justify-content: center !important;
  16.   background: rgba(0,0,0,0.55) !important;
  17.   border: none !important;
  18.   border-radius: 6px !important;
  19.   color: #fff; cursor: pointer; user-select: none;
  20.   transition: background 0.15s, filter 0.15s;
  21.   padding: 0 !important; margin: 0 !important;
  22.   font-size: 14px;
  23.   line-height: 1;
  24. }
  25. .lmp-btn:hover { background: rgba(0,0,0,0.8) !important; filter: brightness(1.2); }
  26. .lmp-btn:active { filter: brightness(0.85); }

  27. .lmp-bt_prev::before { content: "«"; font-size: 1.6em; font-weight: bold; line-height: 1; }
  28. .lmp-bt_next::before { content: "»"; font-size: 1.6em; font-weight: bold; line-height: 1; }

  29. .lmp-bt_play::before {
  30.   content: ""; width: 0; height: 0;
  31.   border-top: 0.65em solid transparent;
  32.   border-bottom: 0.65em solid transparent;
  33.   border-left: 0.8em solid #fff;
  34.   margin-left: 0.15em;
  35. }
  36. .lmp-bt_play[data-playing="1"]::before {
  37.   width: 0.7em; height: 1.15em;
  38.   border: none;
  39.   border-left: 0.22em solid #fff;
  40.   border-right: 0.22em solid #fff;
  41.   margin: 0;
  42. }

  43. .lmp-bt_mute::before {
  44.   content: "🔊";
  45.   font-size: 1.3em;
  46.   line-height: 1;
  47. }
  48. .lmp-bt_mute[data-muted="1"]::before,
  49. .lmp-bt_mute.lmp-muted::before {
  50.   content: "🔇";
  51. }
  52. .lmp-bt_mute::after, .lmp-bt-mute-slash { display: none !important; }
  53. .lmp-volume { display: none !important; }

  54. .lmp-bt_list::before { content: "☰"; font-size: 1.2em; }
  55. .lmp-bt_option::before { content: "!"; font-size: 1.4em; font-weight: bold; }
  56. .lmp-bt_fullscreen::before { content: "⛶"; font-size: 1.2em; }

  57. /* ================= 标题 ================= */
  58. .lmp-title {
  59.   color: #ffffff;
  60.   font-family: Arial, sans-serif;
  61.   white-space: nowrap;
  62.   overflow: hidden;
  63.   text-overflow: ellipsis;
  64.   text-shadow: 1px 1px 3px rgba(0,0,0,0.9);
  65. }

  66. /* ================= 时间 ================= */
  67. .lmp-time {
  68.   color: #eeeeee;
  69.   font-family: Arial, sans-serif;
  70.   text-shadow: 1px 1px 2px rgba(0,0,0,0.8);
  71. }

  72. /* ================= 进度条 ================= */
  73. .lmp-progress {
  74.   position: relative !important;
  75.   background: rgba(255,255,255,0.4) !important;
  76.   border-radius: 2px;
  77.   cursor: pointer;
  78.   overflow: visible;
  79. }
  80. .lmp-progress::before {
  81.   content: ""; position: absolute; top: 0; left: 0; height: 100%;
  82.   width: var(--progress, 0%); border-radius: 2px;
  83.   background: #ffffff !important;
  84.   pointer-events: none;
  85. }
  86. .lmp-progress-thumb {
  87.   position: absolute !important;
  88.   width: 8px !important; height: 8px !important;
  89.   background: #ffffff !important;
  90.   border-radius: 50%;
  91.   top: 50% !important;
  92.   transform: translate(-50%, -50%);
  93.   box-shadow: 0 0 4px rgba(255,255,255,0.8);
  94.   cursor: grab;
  95.   z-index: 2;
  96. }
  97. .lmp-progress-thumb:hover { transform: translate(-50%, -50%) scale(1.4); }

  98. /* ================= 列表 ================= */
  99. .lmp-window-list {
  100.   background: rgba(0, 0, 0, 0.4) !important;
  101.   border: none !important; backdrop-filter: blur(3px);
  102.   border-radius: 6px;
  103. }
  104. .lmp-tree { background: transparent !important; }
  105. .lmp-tree-item {
  106.   color: #ffffff;
  107.   font-family: "KaiTi", "楷体", "STKaiti", serif;
  108.   padding: 8px 16px;
  109.   cursor: pointer;
  110.   border-bottom: none;
  111.   transition: color 0.1s;
  112.   text-shadow: 1px 1px 2px rgba(0,0,0,0.8);
  113. }
  114. .lmp-tree-item:hover { background: transparent; color: #ffcc00; }
  115. .lmp-tree-item.lmp-active { background: transparent; font-weight: 700; color: #ff0000; }

  116. .lmp-search {
  117.   background-color: #111111 !important;
  118.   background-image: none !important;
  119.   border: 1px solid #555555 !important;
  120.   border-radius: 4px;
  121.   color: #ffffff !important;
  122.   padding: 0 8px;
  123.   outline: none;
  124. }
  125. .lmp-search:focus { border-color: rgba(120,180,255,0.8) !important; }

  126. .lmp-bt_close {
  127.   background: transparent !important; border: none !important;
  128.   color: #ff0000 !important; z-index: 30;
  129. }
  130. .lmp-bt_close::before { content: "✕"; }

  131. /* ================= 设置 ================= */
  132. .lmp-window-option {
  133.   background: rgba(0, 0, 0, 0.5) !important;
  134.   backdrop-filter: blur(5px);
  135.   border-radius: 4px;
  136.   border: 1px solid rgba(255,255,255,0.2) !important;
  137.   box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  138. }

  139. /* ================= 歌词 ================= */
  140. .lmp-lrc-text { position: absolute; overflow: hidden; width: 100%; height: 100%; text-align: center; }
  141. .lmp-lrc-line {
  142.   display: block; text-align: center; padding: 2px 0; line-height: 1.4;
  143.   font-family: "KaiTi", "楷体", "STKaiti", serif;
  144.   color: #ffcc00;
  145.   font-size: var(--lrc-size-normal, 36px);
  146.   transition: color 0.3s, font-size 0.3s;
  147.   text-shadow: 1px 1px 2px rgba(0,0,0,0.8);
  148. }
  149. .lmp-lrc-line.lmp-active {
  150.   font-weight: bold;
  151.   font-size: var(--lrc-size, 50px);
  152.   color: #ff3333 !important;
  153.   text-shadow:
  154.     -1.5px -1.5px 0 #000, 1.5px -1.5px 0 #000,
  155.     -1.5px 1.5px 0 #000, 1.5px 1.5px 0 #000,
  156.     -1.5px 0 0 #000, 1.5px 0 0 #000,
  157.     0 -1.5px 0 #000, 0 1.5px 0 #000,
  158.     0 0 8px rgba(0,0,0,0.8);
  159. }

  160. /* ================= 音量 ================= */
  161. .lmp-volume { background: transparent; cursor: pointer; opacity: 0; transition: opacity 0.2s; }
  162. .lmp-bt_mute:hover + .lmp-volume { opacity: 1; }
  163. .lmp-volume-thumb { width: 10px !important; height: 10px !important; background: #fff; border-radius: 50%; box-shadow: 0 0 4px #fff; }

  164. .lmp-tree {
  165.   scrollbar-width: thin;
  166.   scrollbar-color: rgba(255,255,255,0.3) transparent;
  167. }
  168. .lmp-tree::-webkit-scrollbar { width: 8px; }
  169. .lmp-tree::-webkit-scrollbar-track { background: transparent; }
  170. .lmp-tree::-webkit-scrollbar-thumb {
  171.   background: rgba(255,255,255,0.3);
  172.   border-radius: 4px;
  173. }
  174. .lmp-tree::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.5); }
复制代码
skin.js
  1. var LMP34 = LMP34 || {};

  2. LMP34.skinHooks = (function () {
  3.     var centerPlayEl = null;
  4.     var resizeBound = false;

  5.     function applyXYWH(el, pos) {
  6.         el.style.left = pos.x + 'px';
  7.         el.style.top = pos.y + 'px';
  8.         el.style.width = pos.w + 'px';
  9.         el.style.height = pos.h + 'px';
  10.     }

  11.     function initCenterPlay(container) {
  12.         return;
  13.     }

  14.     function setCenterPlayVisible(visible) {
  15.         return;
  16.     }

  17.     function buildLrcText(child, parentEl, winName, elements) {
  18.         var a = child.attrs;
  19.         if (child.tag === 'kmc') {
  20.             elements.lrcKmc = a;
  21.             if (elements.lrcText && a.size) {
  22.                 var s = parseFloat(a.size);
  23.                 if (s > 0) {
  24.                     elements.lrcText.style.setProperty('--lrc-size', s + 'px');
  25.                     elements.lrcText.style.setProperty('--lrc-size-normal', (s * 0.73) + 'px');
  26.                 }
  27.             }
  28.             return null;
  29.         }

  30.         var txt = document.createElement('div');
  31.         txt.className = 'lmp-lrc-text';
  32.         txt.style.cssText = 'position:absolute;overflow:hidden;text-align:center;width:100%;height:100%;';
  33.         var baseSize = parseFloat(a.size) || 50;
  34.         txt.style.setProperty('--lrc-size', baseSize + 'px');
  35.         txt.style.setProperty('--lrc-size-normal', (baseSize * 0.73) + 'px');
  36.         if (a.font) txt.style.fontFamily = a.font;
  37.         
  38.         parentEl.appendChild(txt);
  39.         elements.lrcText = txt;
  40.         return txt;
  41.     }

  42.     function buildVideo(child, parentEl, winName, elements) {
  43.         var video = document.createElement('div');
  44.         video.className = 'lmp-video-container';
  45.         video.style.cssText = 'overflow:hidden;position:relative;width:100%;height:100%;';
  46.         parentEl.appendChild(video);
  47.         elements.videoContainer = video;

  48.         var spec = document.createElement('canvas');
  49.         spec.className = 'lmp-spectrum';
  50.         spec.style.cssText = 'position:absolute;pointer-events:none;z-index:3;';
  51.         video.appendChild(spec);
  52.         elements.spectrumCanvas = spec;
  53.         return video;
  54.     }

  55.     function loadLrc(lrcSrc, elements, currentItem) {
  56.         if (!elements || !elements.lrcText) return;
  57.         elements.lrcText.innerHTML = '';
  58.         function fallback() {
  59.             var name = currentItem && (currentItem.title || currentItem.label);
  60.             if (!name) return;
  61.             var line = document.createElement('div');
  62.             line.className = 'lmp-lrc-line lmp-active';
  63.             line.textContent = name;
  64.             elements.lrcText.appendChild(line);
  65.         }
  66.         if (!lrcSrc) { fallback(); return; }

  67.         var url = lrcSrc;
  68.         var anchor = document.createElement('a');
  69.         anchor.href = lrcSrc;
  70.         if (anchor.origin !== window.location.origin) url = 'proxy.php?url=' + encodeURIComponent(lrcSrc);

  71.         var xhr = new XMLHttpRequest();
  72.         xhr.open('GET', url, true);
  73.         xhr.onreadystatechange = function () {
  74.             if (xhr.readyState !== 4) return;
  75.             if (xhr.status === 200 || xhr.status === 0) {
  76.                 var lines = LMP34.api.parseLrc(xhr.responseText);
  77.                 if (lines && lines.length) LMP34.hooks.doAction(LMP34.hooks.NAMES.LRC_RENDER_LINES, lines, elements);
  78.                 else fallback();
  79.             } else { fallback(); }
  80.         };
  81.         xhr.send();
  82.     }

  83.     function renderLrcLines(lines, elements) {
  84.         if (!elements || !elements.lrcText) return;
  85.         elements.lrcText.innerHTML = '';
  86.         for (var i = 0; i < lines.length; i++) {
  87.             var line = document.createElement('div');
  88.             line.className = 'lmp-lrc-line';
  89.             line.textContent = lines[i].text;
  90.             line.dataset.time = lines[i].time;
  91.             elements.lrcText.appendChild(line);
  92.         }
  93.         elements.lrcText.scrollTop = 0;
  94.     }

  95.     function updateLrc(ct, elements) {
  96.         if (!elements || !elements.lrcText) return;
  97.         var lines = elements.lrcText.querySelectorAll('.lmp-lrc-line');
  98.         if (!lines.length) return;
  99.         var activeIdx = -1;
  100.         for (var i = lines.length - 1; i >= 0; i--) {
  101.             if (ct >= (parseFloat(lines[i].dataset.time) || 0)) { activeIdx = i; break; }
  102.         }
  103.         for (var j = 0; j < lines.length; j++) {
  104.             if (j === activeIdx) {
  105.                 lines[j].classList.add('lmp-active');
  106.             } else {
  107.                 lines[j].classList.remove('lmp-active');
  108.             }
  109.         }
  110.         if (activeIdx >= 0) {
  111.             var el = lines[activeIdx];
  112.             elements.lrcText.scrollTop = el.offsetTop - elements.lrcText.clientHeight / 2 + el.offsetHeight / 2;
  113.         }
  114.     }

  115.     function relayoutWindowChildren(winEl) {
  116.         if (!winEl) return;
  117.         var cw = winEl.clientWidth, ch = winEl.clientHeight;
  118.         for (var i = 0; i < winEl.children.length; i++) {
  119.             var xywh = winEl.children[i].dataset.xywh;
  120.             if (xywh) {
  121.                 applyXYWH(winEl.children[i], LMP34.api.parseXYWH(xywh, cw, ch));
  122.                 if (winEl.children[i].children.length) relayoutWindowChildren(winEl.children[i]);
  123.             }
  124.         }
  125.     }

  126.     function applyFullscreenLayout(ctx) {
  127.         var container = ctx && ctx.container, windows = ctx && ctx.windows;
  128.         if (!container || !windows) return;
  129.         initCenterPlay(container);

  130.         var vw = window.innerWidth, vh = window.innerHeight;
  131.         container.style.width = vw + 'px';
  132.         container.style.height = vh + 'px';

  133.         var zMap = { media: 1, lrc: 5, console: 10, list: 20, option: 20 };
  134.         for (var name in windows) {
  135.             var win = windows[name];
  136.             if (!win || !win.dataset.xywh) continue;
  137.             applyXYWH(win, LMP34.api.parseXYWH(win.dataset.xywh, vw, vh));
  138.             if (zMap[name]) win.style.zIndex = zMap[name];
  139.             relayoutWindowChildren(win);
  140.         }
  141.     }

  142.     function onLayout(ctx) {
  143.         applyFullscreenLayout(ctx);
  144.         if (resizeBound) return;
  145.         resizeBound = true;
  146.         var timer;
  147.         window.addEventListener('resize', function () {
  148.             clearTimeout(timer);
  149.             timer = setTimeout(function () { applyFullscreenLayout(ctx); }, 120);
  150.         });
  151.     }

  152.     return {
  153.         buildLrcText: buildLrcText,
  154.         buildVideo: buildVideo,
  155.         loadLrc: loadLrc,
  156.         renderLrcLines: renderLrcLines,
  157.         updateLrc: updateLrc,
  158.         onLayout: onLayout,
  159.         onWindowToggle: function(n,h,ctx){ applyFullscreenLayout(ctx); },
  160.         setCenterPlayVisible: setCenterPlayVisible
  161.     };
  162. })();

  163. // 状态联动
  164. (function () {
  165.     function ready(fn) { document.readyState !== 'loading' ? fn() : document.addEventListener('DOMContentLoaded', fn); }
  166.     ready(function () {
  167.         var hooks = LMP34.hooks;
  168.         if (!hooks) return;
  169.         function getElements() { return LMP34.view && LMP34.view.skin && LMP34.view.skin.getElements(); }

  170.         function updateMuteIcon() {
  171.             var el = getElements();
  172.             if (el && el.bt_mute) {
  173.                 var m = LMP34.mediaEngine && LMP34.mediaEngine.getMuted && LMP34.mediaEngine.getMuted();
  174.                 el.bt_mute.setAttribute('data-muted', m ? '1' : '0');
  175.                 el.bt_mute.classList.toggle('lmp-muted', !!m);
  176.             }
  177.         }

  178.         hooks.addAction(hooks.NAMES.MEDIA_STATE, function (s) {
  179.             LMP34.skinHooks && LMP34.skinHooks.setCenterPlayVisible && LMP34.skinHooks.setCenterPlayVisible(s === 'paused' || s === 'stopped');
  180.             updateMuteIcon();
  181.             var type = LMP34.mediaEngine && LMP34.mediaEngine.getType && LMP34.mediaEngine.getType();
  182.             var lrcWin = document.querySelector('.lmp-window-lrc');
  183.             if (lrcWin) {
  184.                 lrcWin.style.display = (type === 'video' && s !== 'stopped') ? 'none' : '';
  185.             }
  186.         }, 10, 'lmp34-fuke');

  187.         hooks.addAction(hooks.NAMES.MEDIA_TIME_UPDATE, function (ct, dur) {
  188.             var el = getElements();
  189.             if (el && el.progress) {
  190.                 el.progress.style.setProperty('--progress', (dur > 0 ? ct / dur * 100 : 0) + '%');
  191.             }
  192.         }, 10, 'lmp34-fuke');

  193.         function bindMuteObserver() {
  194.             var el = getElements();
  195.             if (!el || !el.bt_mute) { setTimeout(bindMuteObserver, 300); return; }
  196.             updateMuteIcon();
  197.             if (window.MutationObserver) {
  198.                 var mo = new MutationObserver(function () { updateMuteIcon(); });
  199.                 mo.observe(el.bt_mute, { attributes: true, attributeFilter: ['class', 'style'] });
  200.             }
  201.             el.bt_mute.addEventListener('click', function () {
  202.                 setTimeout(updateMuteIcon, 50);
  203.                 setTimeout(updateMuteIcon, 200);
  204.             });
  205.         }
  206.         bindMuteObserver();
  207.     });
  208. })();
复制代码
skin.xml  这个和CMP4一样 你会做CMP4皮肤 配置坐标是一样的
  1. <skin name="LMP34-澄影" version="4.0" author="亚伦影音工作室" email="1132765571@qq.com" url="https://bbs.cnzv.cc/?32" readme="透明背景,满屏视频,音画一体" preview="" mask_color="#000000" show_tips="0.5" context_menu="1">

  2.   <media xywh="0, 0, 100P, 100P" src="" mask="" lock="1" display="1" group="A">
  3.     <video xywh="0, 0, 100P, 100P" show_icon="0" show_buttons="0">
  4.       <spectrum xywh="0, 60P, 100P, 40P" />
  5.     </video>
  6.   </media>

  7.   <lrc xywh="0, 65P, 100P, 20P" src="" mask="" lock="1" display="1" group="A" shadow="">
  8.     <text xywh="0, 0, 100P, 100P" align="center" font="KaiTi,楷体,STKaiti,serif" size="50" leading="0" color="#ffcc00, #ff3333" horizontal="0" max_scale="1" max_button="0">
  9.       <kmc line_mode="0" time_preview="5000" time_sec3="8000" show_info="0" margin="0" size="50" bold="1" align="center, center" color="#ffcc00, #ff3333" />
  10.     </text>
  11.   </lrc>

  12.   <console xywh="0, 30R, 100P, 60" src="" mask="" lock="1" display="1" group="A">
  13.     <title xywh="0, 0, 100P, 20" align="center" font="Arial" size="14" color="#ffffff,#cccccc" bold="0" />
  14.     <bt_prev xywh="5P, 22, 38, 32" src="" tips="上一个" />
  15.     <bt_play xywh="8P, 22, 38, 32" src="" tips="播放,暂停" />
  16.     <bt_next xywh="11P, 22, 38, 32" src="" tips="下一个" />
  17.     <progress xywh="15P, 37, 65P, 3" thumb_src="" track_src="" tips="定位" />
  18.     <time xywh="81P, 30, 110, 20" align="left" font="Arial" size="13" color="#eeeeee" />
  19.     <bt_list xywh="87P, 28, 22, 22" src="" tips="打开列表,关闭列表" />
  20.     <bt_option xywh="88.8P, 28, 20, 20" src="" tips="皮肤信息" />
  21.     <bt_mute xywh="90.5P, 28, 20, 20" src="" tips="静音,打开声音" hover_volume="" />
  22.     <volume xywh="90P, 50B, 5, 32" thumb_src="" track_src="" src="" tips="音量" />
  23.     <bt_fullscreen xywh="92.5P, 28, 20, 20" src="" fullscreen_scale="1" fullscreen_max="video" tips="打开全屏,退出全屏" />
  24.   </console>

  25.   <list xywh="50R, 50, 520, 60B" src="" mask="" lock="1" display="0" group="A" fade="0">
  26.     <tree xywh="10, 20, 510, 55B" align="left" font="KaiTi,楷体,STKaiti,serif" size="18" color="#ffffff, #ffffff" bold="0" show_delete="0" show_icon="1" />
  27.     <search xywh="10, 20R, 490, 28" align="left" font="Arial" size="20" color="#ffffff, #aaaaaa" borderColor="#555555" backgroundColor="#111111" bold="0" value="搜索..." />
  28.     <scrollbar thumb_src="" button_src="" track_src=""/>
  29.     <icons bullet="" opened="" closed="" />
  30.     <bt_close xywh="5R, 5, 22, 22" src="" tips="关闭列表" />
  31.   </list>

  32.   <option xywh="10R, 50, 260, 50B" src="" mask="" lock="1" display="0" group="A" fade="0">
  33.     <pane xywh="0, 0, 100P, 100P" align="left" font="" size="12" color="#7a7a9a, #b0b0d0" />
  34.     <scrollbar thumb_src="" button_src="" track_src=""/>
  35.     <bt_close xywh="5R, 3, 15, 14" src="" tips="关闭设置" />
  36.   </option>

  37.   <languages>
  38.     <msg id="state_playing">正在播放</msg>
  39.     <msg id="state_paused">已暂停</msg>
  40.     <msg id="menu_list">播放列表</msg>
  41.     <msg id="menu_lrc">歌词</msg>
  42.     <msg id="menu_option">选项</msg>
  43.   </languages>
  44. </skin>
复制代码


世上无难事,实在不行就摇铃
发表于 2026-10-21 17:06:02 | 显示全部楼层
辛苦了辛苦了!
发表于 2026-10-21 17:06:44 | 显示全部楼层
这回播放器同步歌词制作漂亮!
发表于 2026-10-24 17:15:12 | 显示全部楼层
老师一直再更新,我们的播放器都没声音了!

点评

https://www.cnlog.cc/post/21.html 这个帖子有个代理代码 如果有朋友有国内服务器 https 的地址 保存php 播放器上加参数 ?proxy=xx.php 我代理地址是国外的 对有些地址不能访问 没这个代理 频谱不显示 和CM  详情 回复 发表于 2026-10-24 17:31
代理问题 我服务器做代理 流量太大 用了个香港的服务器做代理 好像不支持网盘音乐  详情 回复 发表于 2026-10-24 17:19
 楼主| 发表于 2026-10-24 17:19:16 | 显示全部楼层
亚伦影音工作室 发表于 2026-10-24 17:15
老师一直再更新,我们的播放器都没声音了!

代理问题 我服务器做代理 流量太大  用了个香港的服务器做代理 好像不支持网盘音乐
世上无难事,实在不行就摇铃
 楼主| 发表于 2026-10-24 17:31:52 | 显示全部楼层
亚伦影音工作室 发表于 2026-10-24 17:15
老师一直再更新,我们的播放器都没声音了!

https://www.cnlog.cc/post/21.html
这个帖子有个代理代码 如果有朋友有国内服务器  https 的地址  保存php   播放器上加参数 ?proxy=xx.php   我代理地址是国外的 对有些地址不能访问   没这个代理 频谱不显示 和CMP4一样的问题
世上无难事,实在不行就摇铃
发表于 2026-10-24 20:30:48 | 显示全部楼层
admin 发表于 2026-10-24 17:31
https://www.cnlog.cc/post/21.html
这个帖子有个代理代码 如果有朋友有国内服务器  https 的地址  保存p ...

现在频谱也不动了,歌词也不显示,怕老师的播放器以后会不会正常!

0

主题

0

回帖

5

积分

黑铁会员

积分
5
发表于 前天 15:16 | 显示全部楼层
支持分享,文章独具匠心
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|小黑屋|纳兰音画网 ( 蜀ICP备2021011087号-1 )

GMT+8, 2026-11-7 00:00 , Processed in 0.131949 second(s), 33 queries .

Powered by Discuz! X5.0

© 2001-2020 Comsenz Inc.

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