阅读(4762)
赞(11)
live-player
2020-02-11 18:24:51 更新
基础库版本 1.44.0 开始支持,安卓 1.38.1 起支持目前支持宿主端头条:安卓 746 版本,iOS 753 版本抖音:安卓 890,iOS 930(抖音 iOS 不能全屏)
相关 api:tt.createLivePlayerContext
参数说明
属性名 | 类型 | 默认值 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|---|
src | string | 是 | 视频地址。目前仅支持 flv,支持跨域 | ||
autoplay | boolean | false | 否 | 是否自动播放 | |
muted | boolean | false | 否 | 是否静音 | |
orientation | string | vertical | 否 | 画面朝向,vertical 为竖直,horizontal 为水平 | |
object-fit | string | contain | 否 | 填充模式,可选值有 contain,fillCrop | |
bindstatechange | eventhandle | 否 | 播放状态变化事件,detail = {code} | ||
bindfullscreenchange | eventhandle | 否 | 全屏变化事件,detail = {direction, fullScreen} |
src
直播流地址如果跨域,则必须满足 cors 约束才能正常播放,具体设置可参考:
- Access-Control-Allow-Headers: x-requested-with
- Access-Control-Allow-Methods: GET,POST,PUT,DELETE,OPTIONS
- Access-Control-Allow-Origin: *
- Access-Control-Max-Age: 1800
orientation 取值
值 | 说明 |
---|---|
vertical | 竖直 |
horizontal | 水平 |
object-fit 取值
值 | 说明 |
---|---|
contain | 图像长边填满屏幕,短边区域会被填充⿊⾊ |
fillCrop | 图像铺满屏幕,超出显示区域的部分将被截掉 |
状态码
code | 说明 |
---|---|
2004 | 视频播放开始 |
2005 | 视频播放进度 |
2006 | 视频播放结束 |
2007 | 视频播放缓冲 |
2103 | 网络出错,正在抢救 |
-2301 | 网络失败,无法播放 |
代码示例
<live-player
id="my-player"
src="https://pull-flv-l6.ixigua.com/game/stream-106078795436654621.flv" rel="external nofollow"
autoplay
bindstatechange="statechange"
>
<button bindtap="requestFs" size="mini" hidden="{{isFullscreen}}">
进入全屏
</button>
<button bindtap="exitFs" size="mini" hidden="{{!isFullscreen}}">
退出全屏
</button>
</live-player>
Page({
data: {
fullScreenDirection: 0
},
statechange(e) {
console.log("状态变化", e);
},
requestFs() {
if (!this.ctx) {
this.ctx = wx.createLivePlayerContext("my-player");
}
console.log("fullScreenDirection", this.data.fullScreenDirection);
this.ctx.requestFullScreen({
direction: Number(this.data.fullScreenDirection)
});
},
exitFs() {
this.ctx.exitFullScreen();
}
});
Bug & Tip
- 开发者工具上暂不支持。
- 目前 iOS 全屏状态下还不能覆盖文字或者图片,安卓可以
- 部分安卓设备在切换全屏时偶现闪动的体验问题
← video