保利威文档中心

帮助中心

弱网提示

更新时间:2024-01-16 09:45:47

背景

用户在使用小程序时,可能会遇到网络不通畅的情况,这可能导致视频播放卡顿。

弱网状态监听与提示实现

从小程序基础库2.21.0版本开始,小程序官方提供了一个事件 wx.onNetworkWeakChange ,用于监听弱网状态变化。然而,此接口不支持小程序插件内部调用。

为解决这个问题,polyv点播插件提供了一个接口,用于显示弱网状态提示。一种简单的实现方式是在小程序中监听 wx.onNetworkWeakChange 事件,在网络变弱时调用插件的接口显示提示。效果如下图所示。

页面后台设置

接入流程如下:

  1. 接入方的小程序监听 wx.onNetworkWeakChange 事件
  2. 在 wx.onNetworkWeakChange 的回调中调用 showWeakNetworkTips 接口

示例代码:

wx.onNetworkWeakChange(function (res) {
  if (res.weakNet) {
    this.selectComponent('#polyvPlayer').showWeakNetworkTips();
    // 可以使用setTimeout延迟关闭提示
  }
}

如果弱网提示的接口不满足业务需求,可以结合 wx.onNetworkWeakChange,通过插件提供的 getQuality() 接口获取视频清晰度数据,自行实现一个弱网提示组件。

API

polyvPlayerContext.showWeakNetworkTips(Object options, Object callbacks)

使用限制

此接口从0.16.1版本开始支持。

功能描述

此接口在插件的视频区域显示弱网提示,可以通过参数修改提示的文案和位置。

使用注意:

  • 如果当前清晰度已经为最低,则不会显示清晰度的切换按钮,对自定义的文案也有效。

  • 在视频、音频模式切换或清晰度切换等特定情况下,提示会被插件内部逻辑关闭,除上述的情况,提示的显示和隐藏由业务方控制。

  • 弱网提示需要用户点击关闭,或者由业务方调用closeWeakNetworkTips接口进行关闭。

  • 音频模式没有清晰度,因此不会显示切换清晰度的按钮。

参数

Object options

属性 类型 默认值 必填 说明
customNormalText string / 弱网提示文案, 自定义白色文案部分
customActiveText string / 弱网提示切换清晰度按钮的文案,点击后降低清晰度, 蓝色文案部分
customSuccessText string / 清晰度切换成功时的文案
position string right-bottom 提示显示的位置,可设置的值: 'right-bottom' | 'right-top' | 'left-bottom' | 'left-top'。显示的范围:会显示在底部控制栏上方、顶部控制栏的下方的区域

Object callbacks

属性 类型 默认值 必填 说明
onWeakTipsClose function / 关闭提示时触发的回调

示例代码

// 不设置参数
this.selectComponent('#polyvPlayer').showWeakNetworkTips();

// 设置自定义的文案和关闭时的回调
this.selectComponent('#polyvPlayer').showWeakNetworkTips({
  customNormalText: '当前网络不佳',
  customActiveText: ' 降低清晰度',
  customSuccessText: '已经成功切换啦!',
  position: 'right-top'
}, {
  onWeakTipsClose: () => {
    console.info('close!!!');
  }
});

polyvPlayerContext.closeWeakNetworkTips()

使用限制

此接口从0.16.1版本开始支持。

功能描述

关闭弱网提示。

示例代码

this.selectComponent('#polyvPlayer').closeWeakNetworkTips();

polyvPlayerContext.getQuality()

使用限制

此接口从0.16.1版本开始支持。

功能描述

获取当前的清晰度数据:视频的清晰度数组、当前清晰度的index、当前清晰度的文案。结合此接口可以获取更低一级清晰度的文案。

返回结果

Object result

属性 类型 说明
current number 当前清晰度的index
text string 当前清晰度的文案
qualitys Array 当前vid清晰度的文案数组

示例代码

const quality = this.selectComponent('#polyvPlayer').getQuality();
// 返回结果示例 {current: 0, text: "流畅", qualitys: ["超清", "高清", "流畅"]}
联系客服,在线咨询