标签本身不支持倍速选择和画中画,必须通过JavaScript在loadedmetadata事件后设置playbackRate(如video.playbackRate = 1.5),且iOS Safari要求用户手势触发并仅支持0.5/1.0/1.5/2.0离散值;画中画需调用video.requestPictureInPicture()并由用户点击触发,同时检测浏览器兼容性。

直接用 `
倍速选择:不能写在 HTML 里,必须 JS 控制
很多人误以为加个 `playbackRate="1.5"` 就能生效,其实完全无效:`playbackRate` 是 DOM 属性,不是 HTML 属性,浏览器会忽略它。
- 必须等视频元数据加载完成才能设速,推荐监听
loadedmetadata事件,此时video.readyState >= 2 - 设速写法唯一正确:
video.playbackRate = 1.25(注意大小写,是playbackRate,不是playbackrate) - iOS Safari 有硬性限制:倍速修改必须由用户真实点击/触摸触发;且只接受离散值(0.5 / 1.0 / 1.5 / 2.0),设 1.25 会静默回退到 1.0
- 按钮点击时应立即更新 UI 显示(比如高亮“1.5×”按钮),不要等
ratechange事件——它在 iOS 上常不触发
画中画(PiP):需用户手势 + 浏览器支持检测
画中画不是默认开启的功能,必须显式调用 video.requestPictureInPicture(),而且该方法必须由用户手势(如 click、touchend)触发。
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力: - 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面; - 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”; - 提及位于 `apps/console/src/featur
- 先检查浏览器是否支持:
document.pictureInPictureElement !== undefined && video.disablePictureInPicture === false - 按钮绑定点击事件后调用:
video.requestPictureInPicture(),成功返回 Promise,失败会 reject - 退出 PiP 后可通过监听
leavepictureinpicture事件做清理或 UI 还原 - 某些浏览器(如旧版 Safari)不支持,建议搭配 fallback 提示,比如显示“当前浏览器不支持画中画”
UI 与状态同步:别让倍速和 PiP 状态丢失
用户切换倍速或进入 PiP 后,页面状态要实时反映,否则体验断裂。
- 倍速按钮组用 data-rate 存档位(如
),点击时读取并赋值给video.playbackRate,再更新当前高亮 - PiP 按钮文字应动态切换:“画中画” ↔ “退出画中画”,通过监听
enterpictureinpicture和leavepictureinpicture事件控制 - 可把当前倍速存入
localStorage,下次打开自动恢复;PiP 状态无法持久化,但可记录偏好用于提示
不复杂但容易忽略
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










