声网的实时音视频总结

时间:2021-07-08
本文章向大家介绍声网的实时音视频总结,主要包括声网的实时音视频总结使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

  对于实时音频及视频通话,我们已经司空见惯,比较常用的就是微信的音视频通话功能,对于这种功能,给我们的生活带来了极大的方便和改变。这里需要前端和后端配合,再结合声网(第三方SDK)就可以实现。(这里以小程序为例)

一、和后端配合

  • 需要用到 webscoket,让后端通过会议id(或者直播间id)或者什么方式将加入到这个会议或者直播中的人划分为一组。eg:我司是有个管理后台可以动态的生成链接,将链接中的特定参数和其它(如:密码等)实现登录

  • 登录成功获取个人信息,这里我们是获取到个人id,会议室id等等(这些操作主要看后端)

二、利用声网第三方SDK(重点)

  • 需要去官网注册账号并登录,登录成功后需要创建一个项目(有免费的和付费的),这里主要获取一个声网的 appid

  • 去声网的官网文档中下载相应的SDK(有小程序,web,ios等很多的SDK)

  • 在项目中引入对应的SDK后,在合适的地方进行实例化(我们在页面加载完成时)

    this.client = new this.AgoraMiniappSDK.Client();
    
  • 之后在合适的地方进行初始化客户端对象,需要 appid

    this.client.init(this.appid,()=>{
      console.log(`client init success`);
      this.join();
    })
    
  • 初始化完成后,进行加入频道( 实例的jion() )操作,需要的参数:声网的token(需要后端去返回),频道号(我们是会议室id),个人的id

    this.client.join(this.agoratoken,this.channel,this.weblogininfo.uid,()=>{
      console.log("加入频道成功")
    },e=>{
      console.log(e)  // 加入失败
    })
    
  • 加入成功后,调用 实例的publish(),来获取自己的这个推流地址,成功后利用小程序的live-pusher进行推流

    this.client.publish(url=>{
      this.pushurl = url
      <!-- this.examlive 是live-pusher的实例对象 -->
      this.examlive.start({
        success: (a) => {
          console.log("推流成功")
        },
        fail:(e)=>{
          console.log('推流失败')
        }
      })
    },e=>{
      console.log(e)
    })
    
  • 加入失败时调用 实例的rejoin(),重新加入

  • 还可以调用 实例的on() 来进行监听

    1. 监听是否有人加入 stream-added,获取加入人的信息,并通过 实例的subscribe() 需要传入uid来获取加入人的播流地址
    this.client.on("stream-added",e => {
      this.client.subscribe(e.uid,(url)=>{})
    })
    
    1. 监听是否有人离开 stream-removed
    this.client.on("stream-removed", e => {
      console.log(`${e.uid}的远端流移除成功`)
    },e=>{
      console.log('移除失败')
    });
    
  • 实例的leave() 是离开的方法

    this.client.leave();
    
  • 实例的destroy() 是销毁本地实例的

还可以和web端等互通,后续更新

原文地址:https://www.cnblogs.com/aloneer/p/14988669.html