记录-关于微吼直播的对接

记录-关于微吼直播的对接关于微吼直播的对接先看一下效果图由于页面未开启直播状态,所以展示的效果如下js库的依赖注意:这里如果不想使用后端的接口,前端加密的的使用MD5加密,所以需要安装MD5加密,本文是前端使用MD5进行

关于微吼直播的对接

先看一下效果图

由于页面未开启直播状态,所以展示的效果如下
在这里插入图片描述

js库的依赖

注意 :这里如果不想使用后端的接口,前端加密的的使用MD5加密,所以 需要安装MD5加密,本文是前端使用MD5进行了加密

npm install md5 --save
<script src="http://cnstatic01.e.vhall.com/3rdlibs/jquery/1.11.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" src="http://cnstatic01.e.vhall.com/jssdk/dist/2.6.8/vhallSDK.js"></script>

初始化播放器

           initVideo(){
				//这路获取登陆人的账号信息,我的登陆信息是本都缓存的
               var token=JSON.parse(localStorage.getItem('token'))

               var that=this;
               // var account=token.phone//账号
               var account=token.phone//账号
               var userName="游客**"+token.phone.substring(7)//用户名
   
                const AppKey = '你的appKey';//在后台账号管路中查看
                const SecretKey = '你的seceekey';//后台管路账号可查看
                //获取直播间的房间号
                let roomid=”12345678''//房间号
             
                let eMail="123@qq.com"//电子邮件 可选,但是必须填写一个不然下面md5加密会报错
                //获取时间戳
                let signedat = new Date().getTime();//当前时间戳
                let sign = `${SecretKey}account${account}app_key${AppKey}email${eMail}roomid${roomid}signedat${signedat}username${userName}${SecretKey}`//签名
                console.log(sign)
                //这里使用md5加密
                let signMd5 = md5(sign);//md5加密


			//2 前端使用md5编码生成sign参数值

               var params={
                    account :account,//必填,唯一用户id,与使用第三方创建用户接口所传的third_user_id需一致)
                    username : userName,//必填,用户昵称用以在各模块中显示
                    roomid :roomid,//必填,当前聊天所在活动id
                    app_key :AppKey,//必填,启用服务唯一验证,API/SDK权限申请后生成,此参数名在1.0.0版本中为appkey,使用当前版本时请更新
                    signedat :signedat,//必填,启用服务唯一验证,unix时间戳
                    sign :signMd5,//必填,启用服务唯一验证,有效期一小时,见下面的生成规则
                    email : eMail,//非必填,当前版本已不建议使用
                    facedom :'#face',可选,当使用微吼表情时必填,呼出表情弹窗dom属性 如('#id','.class'等)

                     textdom : '#mywords',//可选,当使用微吼表情时必填,插入表情文本dom属性 如('#id','.class'等)
                    videoContent : '#videoId',//必填,当需要使用视频模块时,插入视频dom属性 如(flash:'#id','.class'等,  H5:只支持使用id)
                    // docContent: '#docId',//可选,当需要使用文档模块时,插入视频dom属性 如('#id','.class'等)
                    x5_video_type: 'h5',  //非必填,启用腾讯H5同层播放器,V2.3.5及之后版本支持
                    x5_video_fullscreen: 'true', //非必填,字符串,启用腾讯H5全屏方式,V2.3.5及之后版本支持
                   protocol:'https', //非必填,字符串 默认自适应当前url协议,支持手动指定http和https
                    // wrapper:"#board-container", //H5文档播放器容器
                };
                //初始化直播
                 VHALL_SDK.init(params)
                //初始化错误回调
               	VHALL_SDK.on('error', function(msg) {

				console.log(msg);
                })
                //初始成功准备完成
                VHALL_SDK.on('ready', function() {
                    console.log("准备就绪")
                //获取当前登录的用户信息
                that.currentUser= VHALL_SDK.getUserinfo()

				/**
				 * {
				 *     avatar:"//cnstatic01.e.vhall.com/static/images/watch/head50.png" //头像
				 *     forbidchat:"" //0:未开启全员禁言,1:已开启全员禁言
				 *     is_gag:0 //0:未禁言,1:禁言
				 *     is_kickout:0 //0:未踢出,1:踢出
				 *     role:"user"//用户角色
				 *     userid:"用户参会id"
				 *     username:"昵称"
				 * }
				 */
                // VHALL_SDK.getRoominfo();
                console.log( VHALL_SDK.getRoominfo())
                //m默认初始话的点击
                that.tabClick({type:"chat"})
				/**
				 * {
				 *     type: 1 // 1:活动直播中,2:预约中,3:活动结束
				 *     openQuestion : 1 //1: 开启,0 || '':关闭
				 * }
				 */
			});


			VHALL_SDK.on('publishStart', function(msg) {
            console.log('活动开始推流');
            this.saveLog(3)
             this.saveLog(1,60,true)
			});


			VHALL_SDK.on('streamOver', function(msg) {
                console.log('活动已结束');
                if(that.timer){
                   clearTimeout(that.timer)
                }

                this.saveLog(1,60,false)
			});


			/**
			 * [chatMsg 直播收到聊天消息]
			 * @param  {[type]} msg [object]
			 */

			VHALL_SDK.on('chatMsg', function(msg) {
                console.log(msg)
				that.chatArr.unshift(msg)
			});
             VHALL_SDK.on('sendChat', function (msg) {
                 console.log(msg)
               this.chatArr.unshift(msg)
            });

			//用户上线
			VHALL_SDK.on('userOnline', function(msg) {
                console.log(msg);

            });
            	//获取到试试的公告信息的时候
			VHALL_SDK.on('announcement', function(msg) {
               that.getNoticeMessage()
            });


           },

获取直播的聊天信息

//获取历史的聊天信息

          getHisMessage(){

                    if (VHALL_SDK.getRoominfo().type == 1) {
                        //当前直播中
                        VHALL_SDK.vhall_get_live_history_chat_msg().then((res) => {

                            if(res.code==200){
                                 this.chatArr=res.data
                            }

                        })
                    }else{
                        //获取历史的聊天记录
                         VHALL_SDK.vhall_get_record_history_chat_msg().then((res) => {
                            console.log('-----promise历史聊天记录-----')
                            if(res.code==200){
                                this.chatArr=res.data
                            }

                        })
                    }
                    //滚动到最底部
                    this.scrollTobottom()
           },

获取问答记录信息

   //获取问答列表
           getQuestionMessage(){

                if (VHALL_SDK.getRoominfo().type == 1) {
                        //当前直播中

                         if (VHALL_SDK.getRoominfo().openQuestion == 1) {
                            VHALL_SDK.vhall_get_live_history_question_msg().then((res) => {
                                console.log('-----promise获取直播问答记录-----')
                                console.log(res)
                                this.questionArr=res.data
                            })
                        }else{
                             this.vueTool.showToast("暂未开始直播问答")
                        }

                    }else{
                        //非直播中获取
                        if(VHALL_SDK.getRoominfo().openQuestion == 1){
                             VHALL_SDK.vhall_get_history_question_msg().then((res) => {
                            console.log('-----promise历史聊天记录-----')
                            console.log(res)
                             this.questionArr=res.data
                            })
                        }else{
                            this.vueTool.showToast("暂未开始直播问答")
                        }

                    }
                     this.scrollTobottom()
           },

获取公告列表信息

   getNoticeMessage(){
               if(VHALL_SDK.getRoominfo().type == 1){
                    VHALL_SDK.vhall_get_history_notice().then(res=>{
                    console.log(res)
                    if(res.code==200){
                        this.noticeArr=res.data.data
                    }

                })
               }

                 this.scrollTobottom()
           },

发送弹幕

   tosendDM(){
               this.danmuShow = false
               this.checked = !this.checked
               console.log(this.dmvalue)
               VHALL_SDK.player.sendBarrage(this.dmvalue)
               this.dmvalue=""

           },

关闭或开启弹幕

   openAndCloseDM(){
           console.log(this.checked)
           this.checked = !this.checked
              this.dmvalue = ''
               if(this.checked){

                 // this.autofocus  = true
                 // window.addEventListener('load',load, false);
                    this.danmuShow = true
                 console.log(this.$refs)
                 // this.$refs.danmuVal.focus()
                   VHALL_SDK.player.openBarrage()
               }else{
                   this.danmuShow = false
                   VHALL_SDK.player.closeBarrage()
               }

           },

发送聊天信息和公告

  toSendMessage(){

                if(!this.message){
                    return
                }
                if(this.activeIndex==='chat'){
                    console.log(this.currentUser)
                    var msg = VHALL_SDK.sendChat({
                            text: this.message
                        });
                       this.chatArr.unshift(msg)
                    // this.chatArr.unshift({
                    //     content:this.message,
                    //     time:toolUtils.timecNow(),
                    //     user_name:this.currentUser.username,
                    //     avatar:this.currentUser.avatar

                    // })

                }
                if(this.activeIndex==='question'){
                       var msg = VHALL_SDK.sendQuestion({text:this.message})
                       console.log(msg)
                   this.questionArr.unshift(msg)
                }
               this.message=""
                this.scrollTobottom()
            },

今天的文章记录-关于微吼直播的对接分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/60329.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注