视频组件(mzsdk.player)
| 名称 | 参数 | 描述 | 
| init | [Object] | 初始化视频组件 | 
| render | - | 渲染播放器 | 
| dispose | - | 销毁播放器 | 
init方法参数说明
| 名称 | 类型 | 描述 | 
| domId | String | 播放器绑定的domId,最好用div等块级元素。 | 
视频组件的播放相关事件
| 名称 | 描述 | 
| onReady | 播放器控件准备完毕 | 
| onPlay | 开始播放 | 
| onPause | 回放时使用,暂停播放事件 | 
| onEnd | 回放时使用,结束播放事件 | 
| onWaiting | 播放过程中由于网络或其他原因产生的等待,此时视频播放暂停,等网络恢复后会自动播放 | 
| onFirstPlay | 第一次播放 | 
| onDurationChange | 视频总时长发生改变 | 
| onFullScreenChange | 全屏改变 | 
| onLoadedAllData | 已加载完毕所有的媒体数据 | 
| onLoadedData | 已加载完毕当前播放位置的媒体数据,准备播放 | 
| onLoadStart | 开始请求数据 | 
| onLoadedMetaData | 获取资源完成 | 
| onCanPlayThrough | 视频源数据加载完成 | 
| onPlaying | 视频播放中 | 
| onError | 视频播放各种错误 | 
| onSeeking | 视频跳转中 | 
| onSeeked | 视频跳转结束 | 
| onRateChange | 播放速率改变 | 
| onTimeUpdate | 播放时长改变 | 
| onVolumeChange | 音量改变 | 
| onStalled | 网速异常 | 
| onEnterPictureInPicture | 进入画中画 | 
| onLeavePictureInPicture | 退出画中画 | 
| onControlBarChange | 控制栏显示状态更改 | 
视频组件的活动相关事件
| 名称 | 描述 | 
| onOver | 主播离开事件 | 
| onLiveEnd | 直播时使用,直播结束事件 | 
| onOnline | 上线了一个用户 | 
| onOffline | 下线了一个用户 | 
| onCMD | 活动各种cmd事件,包括开始直播,禁言,被踢出,活动各种配置开关等,具体可参考demo | 
示例
    //创建链接
    mzsdk.connect();
    //初始化播放器
    mzsdk.player.init({
        domId: "mz-video-wrapper",
        // 播放事件
        onReady: function () {
            console.log("播放器控件准备完毕");
        },
        onPlay: function (e) {
            console.log("开始播放", e);
        },
        onPause: function (e) {
            console.log("暂停播放", e);
        },
        onEnd: function (e) {
            console.log("结束播放", e);
        },
        onWaiting: function (e) {
            console.log("播放过程中由于网络或其他原因产生的等待,此时视频播放暂停,等网络恢复后会自动播放", e);
        },
        onFirstPlay: function (e) {
            console.log("第一次播放", e);
        },
        onDurationChange: function (e) {
            console.log("视频总时长发生改变", e);
        },
        onControlBarChange: function (e) {
            console.log("控制栏显示状态更改:", e)
        },
        onFullScreenChange: function (e) {
            if (e.target.player.isFullscreen_ == true) {
                console.log("进入全屏");
            } else {
                console.log("退出全屏,如果需要这里设置自动播放");
                if (document.querySelector("video").paused) {
                    document.querySelector("video").play();
                }
            }
        },
        onLoadedAllData: function (e) {
            console.log("已加载完毕所有的媒体数据", e);
        },
        onLoadedData: function (e) {
            console.log("已加载完毕当前播放位置的媒体数据,准备播放", e);
        },
        onLoadStart: function (e) {
            console.log("开始请求数据", e);
        },
        onLoadedMetaData: function (e) {
            console.log("获取资源完成", e);
        },
        onCanPlayThrough: function (e) {
            console.log("视频源数据加载完成", e);
        },
        onPlaying: function (e) {
            console.log("视频播放中", e);
        },
        onError: function (e) {
            if (e.code == -499) {
                if (_this.state.ticketInfo.status == 0) {
                    console.log("视频加载错误原因为:未开播")
                } else if (_this.state.ticketInfo.status == 3) {
                    console.log("视频加载错误原因为:断流中")
                } else {
                    console.log("视频加载错误原因为:空资源")
                }
            } else {
                console.log("视频异常中断:", e.target.player.error_.message);
                _this.setState({
                    errorContent: '视频异常中断',
                    isShowErrorDisplay: true,
                })
            }
        },
        onSeeking: function (e) {
            console.log("视频跳转中", e);
        },
        onSeeked: function (e) {
            console.log("视频跳转结束", e);
        },
        onRateChange: function (e) {
            console.log("播放速率改变", e);
        },
        onTimeUpdate: function (e) {
            // console.log("播放时长改变", e);
        },
        onVolumeChange: function (e) {
            console.log("音量改变", e);
        },
        onStalled: function (e) {
            console.log("网速异常", e);
        },
        onEnterPictureInPicture: function (e) {
            console.log("进入画中画");
        },
        onLeavePictureInPicture: function (e) {
            console.log("离开画中画, 如果需要这里设置自动播放");
            if (document.querySelector("video").paused) {
                document.querySelector("video").play();
            }
        },
        // 活动事件
        onOver: function () {
            console.log("主播暂时离开");
            _this.setState({
                errorContent: '断流中',
                isShowErrorDisplay: true,
            })
        },
        onLiveEnd: function () {
            console.log("结束直播");
            setTimeout(() => {//1秒后刷新本页面
                location.reload();
            }, 1000);
        },
        onOnline: function (msg) {
            console.log("上线了一个用户:", msg.data);
        },
        onOffline: function (msg) {
            console.log("下线了一个用户:", msg.data);
        },
        onCMD: function (msg) {
            console.log("接收到其他消息:", msg);
            const res = msg;
            switch (res.data.type) {
                case "*channelStart":
                    console.log("*确认:频道有新的直播开始了,判断新开始的直播是否是本直播,可以做一些特殊处理";
                    // if (res.data.ticket_id == ticketId) {
                    // }
                    break;
                case "*publishStart":
                    console.log("*确认:开始直播");
                    localStorage.setItem("ticketId", ticketId)
                    setTimeout(() => {//15秒后刷新本页面
                        location.reload();
                    }, 15000);
                    break;
                case "*disablechat":
                    console.log("*确认:禁言", res.data.user_id)
                    if (res.data.user_id == _this.state.ticketInfo.chat_uid) {
                        Toast.info('您已被禁言', 1.5)
                        _this.setState({
                            isBannedMeTalk: true
                        })
                    }
                    break;
                case "*permitchat":
                    console.log("*确认:解禁", res.data.user_id)
                    if (res.data.user_id == _this.state.ticketInfo.chat_uid) {
                        Toast.info('您已解除禁言', 1.5)
                        _this.setState({
                            isBannedMeTalk: false
                        })
                    }
                    break;
                case "*webinarViewConfigUpdate": //活动配置更改
                    for (const aObject in res.data.webinar_content) {
                        if (res.data.webinar_content.hasOwnProperty(aObject)) {
                            const element = res.data.webinar_content[aObject];
                            switch (element.type) {
                                case "hide_chat_history": //历史记录隐藏的开关
                                    console.log("历史记录隐藏的开关:", element.is_open);
                                    break;
                                case "disable_chat": //全体禁言开关
                                    console.log("全体禁言开关:", element.is_open);
                                    let bannedAll = false;
                                    if (parseInt(element.is_open) == 1) {
                                        bannedAll = true;
                                    }
                                    _this.state.isBannedAll = bannedAll;
                                    break;
                                case "barrage": //弹幕开关
                                    console.log("弹幕开关:", element.is_open);
                                    break;
                                case "record_screen": //防录屏开关
                                    console.log("防录屏开关:", element.is_open);
                                    let isShowRecordScreen = false;
                                    if (parseInt(element.is_open) == 1) {
                                        isShowRecordScreen = true;
                                    }
                                    _this.state.isShowDisableRecordScreen = isShowRecordScreen;
                                    _this.fixDisableScreen();
                                    break;
                                case "vote": //投票开关
                                    console.log("投票开关:", element.is_open);
                                    mzsdk.mzee.emit('marketing-control-config-update', { 'type': 'vote', 'value': element.is_open })
                                    break;
                                case "sign": //签到开关
                                    console.log("签到开关:", element.is_open, '签到关闭是实时的,打开只能重新进入活动');
                                    mzsdk.mzee.emit('marketing-control-config-update', { 'type': 'sign', 'value': 0 })
                                    break;
                                case "documents": //文档开关
                                    console.log("文档开关:", element.is_open);
                                    break;
                                case "prize": //抽奖开关
                                    console.log("抽奖开关:", element.is_open);
                                    break;
                                case "full_screen": //暖场图开关
                                    console.log("暖场图开关:", element.is_open);
                                    break;
                                case "open_like": //点赞视图开关
                                    console.log("点赞视图开关:", element.is_open);
                                    break;
                                case "pay_gift": //礼物视图开关
                                    console.log("礼物视图开关:", element.is_open);
                                    mzsdk.mzee.emit('interaction-control-config-update', { 'type': 'gift', 'value': element.is_open })                                        break;
                                case "times_speed": //倍速视图开关
                                    console.log("倍速视图开关:", element.is_open);
                                    break;
                                default:
                                    console.log("未处理的活动配置开关:", res.data.type);
                                    break;
                            }
                        }
                    }
                break;
                case "*kickout": //收到一条踢出用户的消息
                    console.log("用户 ", res.data.user_id, " 被踢出");
                    if (res.data.user_id == _this.state.ticketInfo.chat_uid) {
                        _this.setState({
                            isShowGetKickoutAlert: true
                        })
                    }
                    break;
                default:
                    console.log("未处理的cmd命令: ", res.data.type);
                    break;
            }
        }
    });
	
    mzsdk.player.render();