SDK开发
主要使用流程
VOIP呼叫

VOIP呼叫

在进入VOIP呼叫功能开发前:

  1. 需要先完成开发前工作的步骤一至六,不然您将无法正常使用VOIP的小程序插件
  2. 若步骤四五六尚未完成,可先进行Xp2p实时视频的开发

1. 在app.json中引入插件

{
    "plugins": {
      "wmpf-voip": {
          "version": "latest",
          "provider": "wxf830863afde621eb"
      }
    }
}

2. 获取设备的VOIP状态

  • 您可通过getDeviceList方法传参isGetVoipStatus来在获取设备列表的时候同步获取
  • 也可直接通过getDeviceVoipSubscribeStatus方法来获取
  • 状态为0代表未开通过voip或者已拒绝过voip权限;1代表已开通
app.imcamWx.getDeviceList({isGetVoipStatus: true})
  .then(res => {
    if (res.errCode === 0) console.log(res.deviceList[0].voipStatus) // 0/1
  })
 
app.imcamWx.getDeviceVoipSubscribeStatus(sn)
  .then(res => {
    if (res.errCode === 0) console.log(res.status) // 0/1
  })

3. 对于VOIP状态为0的的设备,进行订阅voip

app.imcamWx.subscripDeviceVoip({sn, alias})
  .then(res => {
    if (res.errCode === 0) console.log('订阅成功')
    else {
      if (res.errCode === -3) console.error('未检测到引入VOIP插件')
      else if (res.errCode === 603) console.log('当前账号已拒绝VOIP权限,需手动去小程序设置里面开启权限')
    }
  })

4. 订阅成功后,发起呼叫

  • 按设备上的按键即可发起呼叫
  • 若呼叫成功,微信会响起呼叫铃声。接听后,即可进入VOIP通话界面

(可选)5. 其他VOIP相关功能

您可参考VOIP插件官方文档 (opens in a new tab)进行VOIP的其他功能开发,比如通话界面添加自定义按钮,或者监听通话中的事件

  • SDK中暴露了wmpfVoip对象,您可通过const wmpfVoip = app.imcamWx.wmpfVoip来直接引用和操作该对象。但请不要重复引用wmpfVoip插件,因为在SDK中已经初始化过了

示例:

this.imcamWx = new ImcamWx()
const wmpfVoip = this.imcamWx.wmpfVoip 
wmpfVoip.onVoipEvent(event => { // 初始化SDK后就立即调用。太晚调用可能不生效
  console.info(`onVoipEvent`, event)
})
© 2024 Cylan