Tampermonkey script for correcting portrait and landscape video aspect ratios in a media player.
查找文件
2026-09-02 20:26:02 +08:00
.gitignore Add files via upload 2026-09-02 20:26:02 +08:00
README.md Add files via upload 2026-09-02 20:26:02 +08:00
媒资播放器视频横竖屏比例智能修正_v1.2(20260323).txt Add files via upload 2026-09-02 20:26:02 +08:00

NxPlayerScaleSwitching

用于媒资播放器的 Tampermonkey 用户脚本,可修正竖屏视频在横屏播放器中的显示比例,避免画面被横向拉伸。

当前脚本版本:1.2 (2026-03-23)

功能

  • MP4 自动识别:读取视频元数据,根据宽高判断是否为竖屏视频并自动切换为 9:16 显示。
  • TS 手动切换:TS 视频无法通过当前探测方式自动判断,可点击播放器右上方按钮切换比例。
  • 随视频重置:检测到新的 MP4 地址后,先恢复横屏状态,再重新判断新视频的方向。
  • 适配窗口与全屏:窗口尺寸或全屏状态变化时会重新计算播放器尺寸。
  • 状态提示
    • 红色按钮“切换竖屏比例”:当前为横屏显示;
    • 绿色按钮“恢复横屏比例”:当前为竖屏显示。

适用页面

公开版本使用不会访问真实业务环境的占位地址:

http://example.invalid/apollo/page/*
https://example.invalid/apollo/page/*

实际部署前,请将脚本头部的 example.invalid 替换为自己的媒资系统地址,并设置 programMoviesEndpoint 视频信息接口关键字。维护者的真实部署值保存在本地敏感配置中,该文件已通过 .gitignore 排除。

文件说明

文件 说明
媒资播放器视频横竖屏比例智能修正_v1.2(20260323).txt 已脱敏的 Tampermonkey 用户脚本源码

仓库不分发第三方 Tampermonkey CRX 安装包。请通过可信的官方渠道安装 Tampermonkey;旧版或受管浏览器环境请联系浏览器管理员。

安装

1. 安装 Tampermonkey

如果浏览器尚未安装 Tampermonkey,请通过浏览器扩展商店或 Tampermonkey 官方渠道安装。受管理或旧版 Chrome 环境可能需要管理员通过浏览器策略部署兼容版本。

2. 安装用户脚本

  1. 打开 Tampermonkey 管理面板。
  2. 新建脚本,并删除编辑器中的默认模板。
  3. @match 中的 example.invalid 替换为自己的部署地址,并把 REPLACE_WITH_PROGRAM_MOVIES_ENDPOINT 替换为视频信息接口关键字。
  4. 媒资播放器视频横竖屏比例智能修正_v1.2(20260323).txt 的全部内容复制到编辑器。
  5. 保存脚本,并确认脚本已启用。
  6. 刷新媒资系统页面。

使用方法

MP4 视频

正常打开或切换视频即可。脚本会监听节目视频信息请求,取得 MP4 地址后加载视频元数据:

  • 高度大于宽度:自动切换为竖屏 9:16
  • 宽度大于或等于高度:保持横屏铺满播放器。

TS 视频或自动识别失败

点击播放器外部右上角的比例按钮:

  • 点击“切换竖屏比例”进入竖屏显示;
  • 点击“恢复横屏比例”恢复横屏显示。

手动切换后,脚本会保留手动状态,直到检测到下一个 MP4 视频并重置。

工作原理

  1. 脚本在页面加载初期接管 XMLHttpRequest,监听本地配置指定的视频信息接口响应。
  2. 从响应的 filePathlist[0].filePath 中读取视频地址。
  3. 对 MP4 创建临时 <video> 元素,仅预加载元数据以获取原始宽高。
  4. 竖屏模式下,根据播放器容器高度计算 9:16 宽度并水平居中;横屏模式下恢复为 100% × 100%
  5. 监听窗口尺寸及全屏状态变化,重新应用播放器样式。

页面结构依赖

脚本依赖媒资页面中的以下元素:

元素 用途
#playerDiv 定位播放器区域及按钮挂载位置
#ocx 获取播放器容器高度
#nacl_module 应用宽高和居中样式的播放器元素
.panel 比例切换按钮的外层容器

如果媒资系统升级后修改了这些元素,脚本可能无法显示按钮或调整比例。

常见问题

页面上没有出现切换按钮

  • 确认 Tampermonkey 和本脚本均已启用;
  • 确认当前地址符合脚本的 @match
  • 确认页面仍包含 #playerDiv,且其上层存在 .panel
  • 刷新页面后重试。

MP4 没有自动切换

  • 打开浏览器开发者工具,检查控制台是否输出“探测器存活并成功返回”;
  • 检查视频信息接口关键字是否已按本地敏感配置填写,并与当前接口一致;
  • 检查接口返回中是否仍使用 filePathlist[0].filePath
  • 视频地址若受鉴权、跨域或并发请求限制,元数据探测可能失败,此时可使用手动按钮。

全屏后比例不正确

先退出全屏再重新进入;如果仍未恢复,可点击比例按钮切换两次,强制重新应用样式。

已知限制

  • 自动方向识别目前仅处理文件地址中包含 .mp4 的视频。
  • 竖屏显示固定按 9:16 计算,其他竖屏比例不会按原始比例呈现。
  • 仅处理接口返回的第一个 filePath,不遍历多个候选视频。
  • 脚本依赖当前接口名称、响应字段和页面 DOM 结构,系统升级后可能需要适配。
  • 视频元数据探测失败时不会自动重试,需要手动切换比例或重新打开视频。

调试

F12 打开浏览器开发者工具,在 Console 中可查看脚本输出:

拦截到新视频,重置状态
探测器存活并成功返回!尺寸: <宽度> x <高度>
探测器阵亡(可能被浏览器拦截并发请求)

维护信息

  • 维护者:内部团队(联系信息保存在本地敏感配置中)
  • Namespace:http://tampermonkey.net/
  • 当前仓库未包含许可证文件;如需分发或修改,请先确认内部使用规范。