# 小程序SDK

**注：点播视频播放的小程序SDK功能相对简单，只提供了获取视频播放地址以及日志发送等基本功能。建议使用点播视频播放的**[**小程序插件**](https://git.polyv.net/help-center/document-center/-/blob/master/docs/vod/js/mp/vod/js/mp/plugin/README.md)**，集成更简单，功能更丰富。**

### 小程序点播SDK下载 （[点击下载咨询](https://git.polyv.net/help-center/document-center/-/blob/master/docs/vod/js/mp/javascript:void\(0\);/README.md)）

### 开发前准备

1.小程序微信开发者后台设置-开发设置-服务器域名中配置 \[request合法域名]

* router.polyv.net
* hls.videocc.net
* prtas.videocc.net
* player.polyv.net ![wx0](https://6941759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmV4PIbrO79lRJl9HCeLg%2Fuploads%2Fgit-blob-7dfddc7c5e32e7e10a1228bcf5e9cadd7ad2c237%2Fwx0.png?alt=media)

### 开始开发

#### 1.获取视频播放地址

index.js

```javascript
import polyv from '../../utils/polyv.js';

Page({
  ...
  onReady: function () {
  	//获取视频播放地址
  	let vid = "e8888b74d1bd0f19e821d6185279564a_e";
	let vidObj = {
		vid: vid,
		callback: function(videoInfo){
			that.setData({
                // 按数组下标递增的顺序分别为流畅、高清、超清视频的分辨率
			  videoSrc: videoInfo.src[0]
			});
		}
	};
	polyv.getVideo(vidObj);
  }
}
```

**选项说明**

### vid

类型：String 说明：视频Id

### callback（videoInfo）

类型：Function 说明：获取视频信息成功时触发 ​ 参数：videoInfo 参数类型：object 参数说明：

| 参数           | 参数说明                                                                                                                                                        |
| ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| src          | <p>数组：多个码率视频播放地址,获取成功后取其中一种码率设置为<a href="https://mp.weixin.qq.com/debug/wxadoc/dev/component/video.html">video</a>组件的src<br>按数组下标递增的顺序分别为流畅、高清、超清视频的分辨率</p> |
| poster       | 视频封面                                                                                                                                                        |
| title        | 视频标题                                                                                                                                                        |
| teaser\_url  | 视频片头,以返回链接后缀判断图片/视频类型                                                                                                                                       |
| duration     | 视频总时长                                                                                                                                                       |
| timeoutflow  | 只返回该属性并为true，表示套餐过期                                                                                                                                         |
| outflow      | 只返回该属性并为true，表示套餐流量不足                                                                                                                                       |
| ### params   |                                                                                                                                                             |
| 类型：object    |                                                                                                                                                             |
| 说明：播放日志自定义参数 |                                                                                                                                                             |

| 参数值可选                        | 说明   |
| ---------------------------- | ---- |
| param1                       | 用户ID |
| param2                       | 观众昵称 |
| ### sid                      |      |
| 类型：String                    |      |
| 说明：POLYV后台观看日志中自定义ID         |      |
| ### ts                       |      |
| 类型：String                    |      |
| 说明：web授权加密时间戳，使用web授权视频播放时添加 |      |

### sign

类型：String 说明：web授权加密验证sign，使用web授权视频播放时添加

#### 2.获取视频预览播放地址

```javascript
onReady: function () {
  	//获取视频预览播放地址
  	let vid = "e8888b74d1bd0f19e821d6185279564a_e";
	let vidObj = {
		vid: vid,
		callback: function(videoInfo){
			that.setData({
			  videoSrc: videoInfo.src[0]
			});
		}
	};
	polyv.getPreviewVideo(vidObj);
  }
```

#### 3.播放日志发送

```javascript
//需要绑定video组件bindtimeupdate时间并调用polyv.timeUpdate
<video id="polyvVideo" class="vp-v" src="{{videoSrc}}" bindtimeupdate="timeUpdate"></video>

timeUpdate: function (e) {
  polyv.timeUpdate(e);
}

```

ps：请留意参数e为必须项

#### 4.销毁播放日志定时器

```javascript
onUnload: function () {
  polyv.destroy();
}
```

#### 更新说明

* 6.7.3微信新版本下，非加密视频播放失败问题已修复兼容 （2018-10-10）。
