1.0.8 • Published 3 years ago

yb-player-mini v1.0.8

Weekly downloads
271
License
MIT
Repository
-
Last release
3 years ago

播放器参考文档

以下为组件相关功能以及示例片段,如有不全或写的不明白的地方还请谅解

支持功能

功能音视频直播纯音频直播回放
暂停/播放YYY
清晰度选择YXY
仅音频/音视频切换YXX
弹幕显示开关YYX
倍速选择XXY
进度条XXY
全屏切换YYY
扬声器开关YYY

下载安装

  1. 安装组件
npm install --save yb-player-mini
  1. 在页面的 json 配置文件中添加 yb-player 组件的配置
{
  "usingComponents": {
    "yb-player-mini": "yb-player-mini/yb-player-mini"
  }
}
  1. WXML 文件中引用 yb-player
<yb-player-mini
  isLive="{{islive}}"
  isAudio="{{isAudio}}"
  showTitle="{{isFull}}"
  title="云视直播"
  cover="{{config.cover}}"
  autoplay="{{config.autoplay}}"
  rePlay="{{config.rePlay}}"
  danmuBtn="{{config.danmuBtn}}"
  danmuEnable="{{config.danmuEnable}}"
  source="{{ config.source }}"
  sourceIndex="{{config.sourceIndex}}"
  audioSourse="{{audioSourse}}"
  id="player"
  bindtapleft="onTapleft"
  bindplayerError="onPlayerError"
  bindfullscreenchange="onFullscreenchange"
>
  <view class="modal">正在连麦</view>
  <view class="error">连麦失败{{isFull}}</view>
  <view class="users-count" slot="headerRight">
    <image src="../../assets/user.png"></image>
    <text>999</text>
  </view>
  <view slot="controlRight">
    <view wx:if="{{isFull}}" class="right-control">
      <view>申请连麦</view>
      <view>问卷</view>
      <view>关注</view>
      <view>分享</view>
    </view>
  </view>
</yb-player-mini>
Page({
  data: {
    text: "dm-dm-dm",
    isFull: false,
    islive: false,
    isAudio: false,
    controls: true,
    danmuEnable: true,
    audioSourse: "http://dlhdl-cdn.zhanqi.tv/zqlive/295803_fLcJv.flv",
    config: {
      danmuBtn: true,
      danmuEnable: false,
      autoplay: false,
      rePlay: true,
      cover: "http://xxxx/cover.jpg",
      source: [
        { text: "高清", src: "" },
        { text: "标清", src: "" },
      ],
      sourceIndex: 0,
      liveSourse: [
        { text: "高清", src: "rtmp://58.200.131.2:1935/livetv/hunantv" },
        { text: "标清", src: "rtmp://58.200.131.2:1935/livetv/hunantv" },
      ],
    },
  },

  bindinput({ detail }) {
    this.setData({
      text: detail.value,
    });
  },

  sendDanmu() {
    if (!this.data.text) return;
    this.player.sendDanmu({
      content: this.data.text,
    });
  },

  toggleLive() {
    let src = this.data.config.source;
    if (!this.data.islive) {
      src = this.data.config.liveSourse;
    }
    this.setData({
      islive: !this.data.islive,
      "config.source": src,
    });
  },

  enterRoom() {
    this.player.enterRoom({
      userID: "用户ID",
      roomID: "房间ID",
      sdkAppID: "填入项目sdkAppID",
      userSig: "服务器获取userSig",
    });
  },

  exitRoom() {
    this.player.exitRoom();
  },

  onTapleft() {
    this.player.fullscreen(false);
  },

  onFullscreenchange(event) {
    this.setData({
      isFull: event.detail.fullScreen,
    });
  },

  onReady: function () {
    this.player = this.selectComponent("#player");
  },
});

属性定义

字段名类型默认值必填描述
idStringid 必须是页面唯一的字符串
sourceStringArray视频播放地址,source 支持清晰度设置 {text: '高清', src: ''}, 清晰度默认选第一个
sourceIndexNumber清晰度索引,默认为 0
audioSourseString音视频切换时音频的播放地址
danmuEnableBoolean弹幕开关,直播模式生效
isLiveBooleanfalse是否为直播模式,直播时不限时进度条
isAudioBooleanfalse是否为纯音频,纯音频不显示视频画面
showTitleBooleanfalse是否显示标题, 自定义插槽不受此控制
titleString标题名称
coverString播放器封面, autoplay 值为 false 时生效
autoplayBooleanfalse自动播放
rePlayBooleanfalse播放器自动循环播放
controlsBooleanfalse是否显示默认控件,(播放/暂停/进度条等)
objectFitStringcontain当视频大小与 video 容器大小不一致时,视频表现形式. 可选值有 contain, fillCrop
switchDelayBooleanfalse切换到直播时,延时到可播放时显示直播视频,此前任显示点播内容
autoPauseIfOpenNativeBooleantrue当跳转到其它微信原生页面时,是否自动暂停本页面的视频
muteOnJoinBooleantrue上麦后直播静音,只播放 rtc 音频

事件属性

名称说明支持模式
bindplay开始/继续播放时触发, 会触发多次All
bindpause暂停播放时触发All
bindended播放完毕后触发All
bindwaiting出现缓冲时触发All
bindcanplay能够开始播放时,会多次触发All
bindtimeupdate播放位置发生变化,点播模式可获取当前时间。event.detail = { currentTime }All
bindfullscreenchange播放器全屏切换事件. event.detail = { fullScreen }All
bindtapleft左侧头部点击事件All
bindplayererror播放出错。event.detail = { errMsg }All
bindqualitychange切换清晰度。event.detail = { srcIndex, src }All
bindratechange切换倍速。event.detail = { index, item }点播
binddanmutoggle弹幕开关切换。event.detail = { enable }直播
bindonlyaudio切换纯音频。event.detail = { only }直播
bindplayerstatechange播放状态变化事件. event.detail = { code }直播
bindplayernetstatus直播画面网络状态变更通知。. event.detail = { info }直播
bindroomnetstatus本地推流的网络状态变更通知。. event.detail = { info }直播
bindroomlocaljoin本地进房成功直播
bindroomlocalleave本地退房成功直播
bindroomerror推流错误直播

操作接口

方法参数说明支持模式
sendDanmu参见 danmuParams发送弹幕消息直播
enterRoom参见 roomParams加入房间,上麦直播
exitRoom退出房间,下麦直播
enableMictrue, false麦克风开关直播
play播放All
pause暂停All
replay重播视频点播
seeknumber跳转到某个时刻进行播放,单位 s点播
getDuration获取当前播放时刻,time 单位为秒点播
mute静音All
unmute取消静音All
fullscreentrue, false设置全屏All

roomParams

{
  "userID": "用户 ID",
  "roomID": "房间 ID",
  "sdkAppID": "填入项目 sdkAppID",
  "userSig": "服务器获取 userSig",
  "enableMic": true // 默认开启麦克风
}

danmuParams

单条弹幕

{
  "color": "#fff",
  "content": "纯文字弹幕"
}

多条弹幕

[
  {
    "color": "#fff",
    "content": "纯文字弹幕"
  },
  ...
]

含图片弹幕

{
  "content": [
    { "type": "text", "content": "含图片弹幕     " },
    {
      "type": "image",
      "content": "http://www.net263.com/resource/system/front/images/page1.jpg"
    },
    { "type": "text", "content": "  含图片弹幕" }
  ]
}

slot

名称描述
默认 slot自定义播放器内部填充内容, 可自行调整元素 z-index 属性
headerLeft头部左侧内容, 设置后将替换原有箭头及标题
headerRight头部右侧内容
controlRight控制条右侧内容

组件元素层级

  1. 播放画面层级为 0
  2. 封面层级为 10
  3. 纯音频封面为 10
  4. 弹幕为 20
  5. 自定义内容为 30
  6. 组件内操作按钮层级为 40

错误代码

bindroomerror 相关的错误码如下表所示。

CODE说明
10001用户禁止使用摄像头
10002用户禁止使用录音
10003背景音资源(BGM)加载失败
10004等待画面资源(waiting-image)加载失败
-1301打开摄像头失败
-1302打开麦克风失败
-1303视频编码失败
-1304音频编码失败
-1307推流出现网络断开,且经过多次重试无法恢复
-3301进入房间失败
-100006权限位校验失败,请检查 privateMapKey 是否正确
-100015SDKAppID 异常,请检查 SDKAppID 是否正确
-100018userSig 校验失败,请检查 userSig 是否正确

Tips

  1. 支持的格式 直播支持的格式为:rtmp, flv 点播支持的格式为:mp4, m3u8

  2. 资源地址 模拟器内图片资源可能不会显示, 可以直接使用预览模式查看

  3. 真机调试 canvas 暂不支持真机调试,可以直接使用预览模式查看

  4. 组件引用问题 1)本地配置开启 使用npm模块, 2)编辑器工具->构建 npm

  5. 上麦后静音按钮将无效

  6. 播放器内添加按钮事件可包裹在cover-view内,真机预览有效

  7. 切换到视频按钮真机预览有效

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago