阅读(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


参数说明

属性名类型默认值必填说明最低版本
srcstring视频地址。目前仅支持 flv,支持跨域
autoplaybooleanfalse是否自动播放
mutedbooleanfalse是否静音
orientationstringvertical画面朝向,vertical 为竖直,horizontal 为水平
object-fitstringcontain填充模式,可选值有 contain,fillCrop
bindstatechangeeventhandle播放状态变化事件,detail = {code}
bindfullscreenchangeeventhandle全屏变化事件,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 全屏状态下还不能覆盖文字或者图片,安卓可以
  • 部分安卓设备在切换全屏时偶现闪动的体验问题