open-index/open-npm huggingface dataset:
npm package: @msbfe/live-sdk
Description: ## 1. 安装依赖
Latest version: 0.0.9

# live-sdk

## 1. 安装依赖

```shell
yarn add @msbfe/live-sdk
or
npm i @msbfe/live-sdk
```

## 2. 初始化

```js
const liveSDK = LiveSDK.init({
  // 通用参数
  el: "",
  userId: "",
  userName: "",

  // 保利威参数
  appId: "",
  channelId: "",
  sign: "",
  timestamp: "",
  avatar: "",

  // 获得场景参数
  siteid: "",
  roomid: "",
});
```

| 参数      | 默认值 | 描述                                                 |
| --------- | ------ | ---------------------------------------------------- |
| el        | 必填   | 播放器挂载节点。这样允许支持一个页面挂载多个播放器。 |
| appId     | 必填   | polyv 后台的 appId                                   |
| channelId | 必填   | 频道(房间号) Id                                      |
| sign      | 必填   | 频道验证签名                                         |
| timestamp | 必填   | 毫秒级时间戳                                         |
| siteid    | 必填   | 获得场景后台 siteid                                  |
| roomid    | 必填   | 获得场景房间号                                       |
| userId    | 可选   | 用户 ID                                              |
| userName  | 可选   | 用户名称                                             |
| avatar    | 可选   | 用户头像                                             |

## 3. 添加事件

### 3.1 事件列表

| 事件              | 默认值                             |
| ----------------- | ---------------------------------- |
| LIVE_START        | 直播开始                           |
| LIVE_STARTING     | 直播中                             |
| LIVE_END          | 直播结束                           |
| LOGIN_SUCCESS     | 登录成功，通常表示播放器初始化完成 |
| LOGIN_ERROR       | 登录失败                           |
| SOCKET_CONNECT    | 连接成功                           |
| SOCKET_DISCONNECT | 连接断开                           |

### 3.2 例子

```js
liveSDK.on(LiveSDK.EVNETS.LOGIN_SUCCESS, () => {});
```

## 4. 销毁

```js
// 获得场景，在切换账号时，需要先执行 liveSDK.logout()
liveSDK.destroy();
```
npm package: @msbfe/location-sdk
Description: ## 1. 使用步骤
Latest version: 0.0.5

# location-sdk

## 1. 使用步骤

###  设置 appKey 

```js
import { baiduLocation } from '@msbfe/location-sdk'
baiduLocation.setAppKey(appKey);
```

``appKey`` 去百度申请的应用的 key

### 2. 通过 getLocation 获取地址位置信息

```js
baiduLocation.getLocation().then((res)=> {
    console.log(res);
})
```

返回的格式为:

```json
{
    "address_detail": {
        "province": "湖南省",
        "city": "长沙市",
        "district": "",
        "street_number": "",
        "adcode": "430100",
        "street": "",
        "city_code": 158
    },
    "point": {
        "y": "3258221.65",
        "x": "12573169.37"
    },
    "address": "湖南省长沙市"
}
```

通常获取地理位置信息日次数限制，为了减少一些不必要的浪费，提供一个 cache 的 API

### 3. 通过 proxyGetLocation 获取地址位置信息

```js
baiduLocation.proxyGetLocation({ force: false}).then((res)=> {
    console.log(res);
})
```
会把获取的结果进行缓存，后面会优先从缓存中进行读取。 

上面 ``force`` 表示需不需要每次强制获取最新的位置信息，默认值为 ``false``。 如果希望每次获取最新的，可以直接把 ``force`` 更改为 ``true`` 即可。
npm package: @msbfe/login-js
Description: ```javascript // src/plugins/login.client.js import Vue from 'vue' import LoginPlugin from '@msbfe/login-js' import '@msbfe/login-js/dist/style.css'
Latest version: 1.0.9

# @msb/login-js
### nuxt2接入示例
```javascript
// src/plugins/login.client.js
import Vue from 'vue'
import LoginPlugin from '@msbfe/login-js'
import '@msbfe/login-js/dist/style.css'

export default () => {
    Vue.prototype.$login = function(callback) {
        if (!localStorage.getItem("token")) {
            const loginInstance = LoginPlugin.getInstance({
                env: process.env.EXEC_ENV,
                success: (data) => {
                    // 登录后统一处理方法(储存token，获取用户信息等)
                    // ....

                    loginInstance.close()

                    if (typeof callback === 'function') {
                        callback(data)
                    }
                },
            })
            loginInstance.open()
        } else if (typeof callback === 'function') {
            callback()
        }
    }
}

// nuxt.config.js
plugins: [{ src: "~/plugins/login.client", ssr: false }]

// src/pages/xxx.vue
function onClick = () => {
  this.$login({
    // 登录鉴权后执行某些操作
    // ....
  })
}

```
npm package: @msbfe/player-sdk
Description: 结合自身业务，整合保利威视和获得场景的回放播放器。
Latest version: 0.0.18

# @msbfe/player-sdk

结合自身业务，整合保利威视和获得场景的回放播放器。

## 1. 安装

```js
npm i @msbfe/player
// or
yarn add @msbfe/player
```

## 2. 使用

```js
import Player from "@msbfe/player";
// 获得场景为例
const player = Player.init({
  el: "#player-warpper",
  vid: "***",
  platform: Player.PLATFROM.SCENE,
  siteid: "***",
  vc: "**", // 加密需要传这个参数
});
```

上面完成播放器初始化操作。

## 3. 平台常量

| 参数                  | 描述     |
| --------------------- | -------- |
| Player.PLATFROM.POLYV | 保利威视 |
| Player.PLATFROM.SCENE | 获得场景 |

## 4. 选项

| 参数                   | 描述                                                                    |
| ---------------------- | ----------------------------------------------------------------------- |
| el                     | 通用参数，播放器挂载节点                                                |
| vid                    | 通用参数，视频 id                                                       |
| platform               | 通用参数，回放平台                                                      |
| siteid                 | 获得场景后台账户 id (获得场景)                                          |
| vc                     | 授权验证码 ，视频开启加密，必须要传该参数(获得场景)                     |
| playsafe               | PC 端播放加密视频所需的授权凭证（保利）                                 |
| sign                   | 移动端播放加密视频所需的签名（保利）                                    |
| ts                     | 移动播放加密视频需传入的时间戳（保利）                                  |
| allowGetScreenshotData | 允许截屏                                                                |
| fullscreenProxy        | 开启全屏代理， 开启之后用户可以通过 FULLSCREEN_PROXY 事件来控制全屏操作 |

## 5. 实例方法

| 方法              | 描述         |
| ----------------- | ------------ |
| getScreenshotData | 获取截屏数据 |

## 6. 事件

| 事件              | 描述             |
| ----------------- | ---------------- |
| LOADED            | 播放器加载完成   |
| READY             | 播放器初始化完成 |
| PLAY              | 播放             |
| PAUSE             | 暂停             |
| VOLUME_CHANGE     | 音量变化         |
| PLAY_OVER         | 播放结束         |
| ENTER_FULL_SCREEN | 进入全屏         |
| EXIT_FULL_SCREEN  | 退出全屏         |
| FULLSCREEN_PROXY  | 代理全屏操作     |

## 7. 其它

- [场景](https://doc.bokecc.com/vod/developer/H5/%E7%9B%B8%E5%85%B3api.html)
- [保利威视](https://help.polyv.net/index.html#/vod/js/video_player/reference)
npm package: @msbfe/report-websocket
Description: ## 安装 ``` yarn add @msbfe/report-websocket ```
Latest version: 0.1.4

# Report Websocket

## 安装
```
yarn add @msbfe/report-websocket
```

## 基本使用
```js
import ReportWebSocket from '@msbfe/report-websocket'
const params = {
  courseId: '', // 课程ID
  channelId: '', // 渠道ID(RoomID)
  recordId: '', // 小节ID
  bzId: '',  // 用户Id
  saleTeacherId: '', // 销售老师
}
const websocket = await ReportWebSocket.initialize({
  ...params,
  env: "test", // 环境    
  wss: '', // 可选 如果传入了 wss 地址，默认会忽略 env 。 主要方便本地调试
  plateForm: ReportWebSocket.WatchSide.studySide, // 观看端(学员端｜助教端)
})

// 监听链接是否正常打开
reportWebScoket.addEventListener('open', function () {
  console.log('open')
})
// 接受消息
reportWebScoket.addEventListener('message', function (event) {
  console.log('message')
})
// 监听连接关闭
reportWebScoket.addEventListener('close', function (event) {
  console.log('close')
})
```

## 静态属性
```js
// 观看端
ReportWebSocket.WatchSide = {
  studySide: 1, // 观看端
  assistantSide: 2, // 助教端
};

// 终端类型
ReportWebSocket.TerminalType = {
  pc: 0,
  app: 1,
};

// 直播类型
ReportWebSocket.LiveType = {
  live: 0, // 直播
  playback: 1, // 回放
};

// 消息状态
ReportWebSocket.MessageStatus = {
  initStatus: 1, // 初始化连接
  closeStatus: 2, // 关闭连接
  normalStatus: 3, // 普通通信
  heartbeatStatus: 4, // 心跳状态
};

// 发送消息方式
ReportWebSocket.GeneralSmsEnum = {
  manualRefresh: 0, // 手动刷新
  record: 1, // 发言
  remark: 6, // 记录
};
```

## 静态方法

| 方法      | 描述 |
| ----------- | ----------- |
| onUserCountMessage      | 用户列表       |
| onAnnouncement   | 公告        |
| onPullBack   | 黑明单        |
| onUpdateLiveStreamStatus| 更新直播状态 |
| onRemarkStatus | 监听备注更新状态 |

## 实例方法

###  reportRecord 记录发言

```js
reportWebScoket.reportRecord()
```

###  refreshRecord 刷新发言
```js
reportWebScoket.refreshRecord()
```

###  updateOptions 更新配置参数
```js
reportWebScoket.updateOptions({
    bzId: ''
})
```

### 更新备注

```js
reportWebScoket.setRemark({
  smsId: '', // UUID
  bzId: '', // 助教老师ID
  remarkDTO: {
    "userId": "", // 用户ID
    "nickName": "" // 用户昵称
  }
})
```

### 上报禁言状态
```js
  reportWebScoket.reportBanChat({
    value: 0 // 0 取消禁言 1 禁言
  })
```


###  leave 关闭 websocket
```js
reportWebScoket.leave()
```
npm package: @msbfe/ui
Description: ## 安装依赖
Latest version: 0.0.64

# MUILibrary

## 安装依赖

```shell
yarn install:all
```

## 启动 V3

```shell
yarn dev:3
```

## 启动 V2

```shell
yarn dev:2
```

## 组件列表

- 直播组件
- 回放组件
- IM 组件

### 直播组件

```vue
<MLiveComponent env="test" token="token" liveId="liveId"></MLiveComponent>
```

#### 属性

| 参数           | 说明     | 类型   | 可选值           | 默认值 |
| -------------- | -------- | ------ | ---------------- | ------ |
| env            | 环境     | string | test、beta、prod | -      |
| token          | 登录凭证 | string | -                | -      |
| liveId         | 直播 ID  | number | -                | -      |
| userName(可选) | 用户名称 | string | -                | ""     |
| userId(可选)   | 用户 ID  | string | -                | ""     |

直播需要鉴权时，则需要传入 `userName` 、 `userId`

#### 方法

| 方法名称 | 说明         |
| -------- | ------------ |
| destroy  | 销毁播放实例 |

#### 事件

| 事件名称         | 说明                       |
| ---------------- | -------------------------- |
| login-success    | 登录成功(播放器初始化完成) |
| live-not-started | 直播未开始                 |
| live-starting    | 直播中                     |
| live-end         | 结束结束                   |

#### 插槽

| name   | 说明                                         |
| ------ | -------------------------------------------- |
| before | 直播开始前封面(例如: 直播倒计时、直播未开始) |
| after  | 直播结束后封面                               |

### 回放组件

#### 基本使用

```vue
<MPlaybackComponent
  env="test"
  token="token"
  platform="platform"
  fileId="fileId"
></MPlaybackComponent>
```

### IM 组件