LMP34 是一个轻量级、功能强大的网页多媒体播放器。完全由前端 JavaScript 驱动, PHP 仅作为 XML 配置解析器 + 跨域资源代理。支持音频、视频、图片三种媒体类型混合播放。
| 项目 | 说明 |
|---|---|
| 项目名 | LMP34 Player |
| 版本 | v2.5.3 |
| 作者 | CnloG |
| 官网 | www.cnlog.cc |
| 开发周期 | 2026.05 — 至今 |
| 源码语言 | JavaScript + PHP + XML |
LMP34 架构(自上而下): ┌─────────────────────────────────────────┐ │ skin.xml skin.css skin.js │ ← 皮肤层:XML 声明布局 + CSS 视觉 + JS 钩子 ├─────────────────────────────────────────┤ │ plugins/ marquee waveform ktv share│ ← 插件层:扩展功能(钩子解耦) ├─────────────────────────────────────────┤ │ hooks / event-bus │ ← 事件总线:各模块通信 ├─────────────────────────────────────────┤ │ core/ media skin lrc tree console │ ← 核心模块:播放引擎、皮肤渲染、歌词、列表 ├─────────────────────────────────────────┤ │ config.xml list.xml │ ← 数据层:XML 驱动,零硬编码配置 ├─────────────────────────────────────────┤ │ PHP lmp34.php proxy.php │ ← 后端层:XML 解析 + 跨域代理 └─────────────────────────────────────────┘
LMP34/ ├── lmp34.php 主入口(PHP 解析 XML 并输出播放器 HTML) ├── proxy.php 跨域资源代理(DNS 绕过 + 多 IP fallback) ├── config.xml 全局配置文件 ├── list.xml 播放列表(可多个) │ ├── js/ 播放器内核 │ ├── core/ │ │ ├── loader.js 扩展容器化加载器(Phase 0) │ │ ├── defaults.js 默认配置与皮肤钩子 │ │ ├── media.js 媒体引擎(audio/video 统一) │ │ ├── skin.js 皮肤渲染器 │ │ ├── lrc.js 歌词解析与渲染 │ │ ├── tree.js 播放列表树 │ │ ├── console.js 控制台控件 │ │ ├── ui.js UI 对话框/设置面板 │ │ ├── hooks.js 事件总线 │ │ └── api.js 对外 API 句柄 │ └── plugin-loader.js 插件加载器(已废弃,保留回滚) │ ├── skins/ 皮肤目录 │ ├── default/ 默认经典黑 │ ├── cmp4/ CMP4 风格 │ ├── qqplayer/ QQ 影音 │ ├── tudou/ 土豆橙色 │ ├── cdplayer/ CD 留声机 │ ├── kuwo/ 酷我 HD │ └── lmpcloud/ LMP34 云隐(透明满框 + 彩虹进度) │ ├── plugins/ 插件目录 │ ├── marquee/ 跑马灯 v1.4 │ ├── waveform/ 频谱 18 种样式 │ ├── ktv/ KTV 逐字歌词 v1.1 │ └── share/ 侧边栏分享 v1.1 │ └── docs/ 使用手册(当前页面)
audio / video / image 统一播放引擎,XML 驱动配置,零硬编码。
XML 声明式布局 + CSS 样式 + JS 钩子三层分离。xywh 坐标支持混合单位(百分比/居右/居中/反向)。首批 7 套皮肤可切换。
钩子事件总线 + 生命周期管理。marquee、waveform(18 种频谱)、ktv(KRC 精确逐字/LRC 伪逐字)、share 四大内置插件,自定义插件开发极简。
支持 LRC / KRC / KMC 三种格式,行高亮 + 自动滚动,KTV 扫光模式精确逐字。
proxy.php 内置 hosts 硬编码 + 多 IP fallback,绕过 DNS 污染。URL 参数 debug=1 触发完整调试页面。
config.xml → LMP34.init() → URL GET 参数,三级优先级,调试灵活。
URL ?xxx=yyy ← 最高优先级(调试用,临时覆盖)
↓
LMP34.init({xxx: 'yyy'}) ← 页面内联配置
↓
config.xml xxx = "yyy" ← 配置文件默认值
↓
js/core/defaults.js ← 内核硬编码兜底
| 浏览器 | 版本 | 说明 |
|---|---|---|
| Chrome | 80+ | 完全支持(推荐) |
| Edge | 80+ | 完全支持 |
| Firefox | 75+ | 完全支持 |
| Safari | 14+ | 基本支持(AudioContext 需要用户交互后才能 resume) |
| IE 11 | - | 不支持(不使用 polyfill) |
LMP34 为个人/商业项目免费使用。二次开发或修改时请保留原作者署名。 若将本项目用于商业性公开服务,建议与作者联系获取最新版授权。
完整的版本历史、每个版本的改动清单和重要特性,请查看: