v3.140.1 起支持同层渲染,更多请参考原生组件。从基础库版本 1.12.0 开始支持事件捕获、冒泡。
解释:实时视频播放器。live-player 组件默认宽度 300px 、高度 225px 。该组件还提供丰富的 API ,来控制实时视频的播放、暂停、全屏等,详见 swan.createLivePlayerContext 。只针对直播答题、直播服务类目开放,需要先通过类目审核,再在小程序管理后台,“开发管理 -> 功能管理”页面的“实时音视频播放”模块中自助开通该组件权限。
支持服务类目
| 一级类目 | 二级类目 |
|---|---|
| 娱乐 | 直播、直播答题 |
| 属性名 | 类型 | 默认值 | 必填 | 说明 | Web 态说明 |
|---|---|---|---|---|---|
| - | |||||
| - | |||||
| - | |||||
| - | |||||
| - | |||||
| 值 | 说明 |
|---|---|
| vertical | 垂直方向 |
| horizontal | 水平方向 |
| 值 | 说明 |
|---|---|
| contain | 包含 |
| fillCrop | 填充 |
| 格式 | Android | iOS | Web 态 |
|---|---|---|---|
| mp4 | 是 | 是 | 是 |
| mov | 是 | 是 | 是 |
| m4v | 是 | 是 | 是 |
| 3gp | 是 | 是 | 否 |
| avi | 是 | 是 | 否 |
| m3u8 | 是 | 是 | 是 |
| webm | 是 | 否 | 否 |
| flv | 是 | 是 | 否 |
| mkv | 是 | 是 | 否 |
| rmvb | 是 | 是 | 否 |
| rm | 是 | 是 | 否 |
| ogg | 是 | 是 | 是 |
| 格式 | Android | iOS |
|---|---|---|
| 代码 | 说明 | Web 态说明 |
|---|---|---|
| 2001 | 已经连接服务器 | 暂不支持 |
| 2002 | 已经连接服务器,开始拉流 | - |
| 2003 | 网络接收到首个视频数据包(IDR) | - |
| 2004 | 视频播放开始 | - |
| 2005 | 视频播放进度 | - |
| 2006 | 视频播放结束 | - |
| 2007 | 视频播放 Loading | - |
| 2008 | 解码器启动 | 暂不支持 |
| 2009 | 视频分辨率改变 | 暂不支持 |
| -2301 | 网络断连,且经多次重连抢救无效,更多重试请自行重启播放 | - |
| -2302 | 获取加速拉流地址失败 | 暂不支持 |
| 2101 | 当前视频帧解码失败 | - |
| 2102 | 当前音频帧解码失败 | 暂不支持 |
| 2103 | 网络断连,已启动自动重连 | 暂不支持 |
| 2104 | 网络来包不稳:可能是下行带宽不足,或由于主播端出流不均匀 | - |
| 2105 | 当前视频播放出现卡顿 | - |
| 2106 | 硬解启动失败,采用软解 | 暂不支持 |
| 2107 | 当前视频帧不连续,可能丢帧 | 暂不支持 |
| 2108 | 当前流硬解第一个 I 帧失败,SDK 自动切软解 | 暂不支持 |
| 3001 | RTMP -DNS 解析失败 | 暂不支持 |
| 3002 | RTMP 服务器连接失败 | 暂不支持 |
| 3003 | RTMP 服务器握手失败 | 暂不支持 |
| 3005 | RTMP 读/写失败 | 暂不支持 |
| 键名 | 说明 |
|---|---|
| videoBitrate | 当前视频编 / 码器输出的比特率(单位:kbps) |
| audioBitrate | 当前音频编 / 码器输出的比特率(单位:kbps) |
| videoFPS | 当前视频帧率 |
| videoGOP | 当前视频 GOP(单位:s),也就是每两个关键帧(I 帧)间隔时长。(安卓不支持该键名) |
| netSpeed | 当前的发送/接收速度 |
| netStatus | 网络状态:-1 为未知;0 为网络不可用;1 为无线广域网连接;2 为 WiFi 连接。(安卓不支持该键名) |
| videoWidth | 视频画面的宽度 |
| videoHeight | 视频画面的高度 |
跳转编辑工具
在开发者工具中打开
在 WEB IDE 中打开
扫码体验
代码示例
请使用百度APP扫码
id="myLive"src="{{src}}"autoplay="{{autoplay}}"muted="{{muted}}"orientation="{{orientation}}"object-fit="{{objectFit}}"min-cache="{{minCache}}"max-cache="{{maxCache}}"bind:statechange="statechange"bind:netstatus="netstatus"bind:fullscreenchange="fullscreenchange">静音 设置填充模式为包含
案例分析:
出于用户体验、节省流量等原因,iOS 的 Safari、版本号 66 及以上的 Chrome、以及大部分国产移动浏览器禁止视频在非静音状态下自动播放。因此,Web 态针对 live-player 组件中 autoplay 属性设置为 true 后做了如下处理:
autoplay = true不生效,页面进入时,播放器上显示播放按钮供用户主动点击触发播放。由于浏览器种类众多,如出现自动播放相关新问题,请将案例反馈给我们,我们将统一记录并反馈进展。
由于浏览器无法解析资源格式。因此对于视频类资源,应在地址中通过后缀名显式声明资源格式,否则可能会导致视频无法正常播放:
案例分析:
微信、百度 App、UC 等浏览器实现了自身的播放器控件,劫持了默认内核提供的播放器样式和逻辑,从而使得基于 H5 video 实现的 Web 态 live-player 组件出现了以下问题:
解决方案:
Web 态针对不同浏览器做了尽可能的修复,以解决此问题。已修复的包括 QQ、Android 微信、QQ 浏览器等基于 X5 内核的平台,百度 App 。但由于浏览器种类众多,有可能存在我们暂未覆盖到的情况。如仍遇到上述问题,请您将案例反馈给我们,我们将统一记录并反馈进展。
案例分析:
微信、QQ、QQ 浏览器等实现了自身的播放控件,从而使得 live-player 组件在退出全屏时出现视频暂停播放的问题。
解决方案:
Web 态针对 Android 下的微信、QQ 等基于 X5 内核的平台在退出全屏时展示一个中间播放按钮,供用户点击来继续播放视频。iOS 下因无法监听退出全屏事件,此问题暂无法解决。