收藏
回答

硬件音视频通话,硬件设备为什么没有弹出对话的UI?

AppID
wxa79452e42f4d749a

硬件发起通话,手机端有提示并接听之后显示等待对方连接,但此时硬件端什么UI弹窗都没有,以下是wxml和ts测试代码。请问是缺少了什么东西吗?

<view>
  <view>Version: 2024年4月23日15点55分 Finish</view>
  <button style="width: 80%; margin-top: 30rpx;" bind:tap="authVoIP">VoIP授权</button>
  <button style="width: 80%; margin-top: 30rpx;" bind:tap="startCommunication">发起通话</button>
</view>


const wmpfVoip = requirePlugin('wmpf-voip').default

Page({
  data: {
    caller: {
      nickname: '微信用户',
      openid: '省略'
    },
    listener: {
      nickname: '微信用户',
      openid: '省略'
    }
  },
  async startCommunication() {
    const that = this

    try {
      // 2.4.0 以下版本 roomId 为 groupId
      const { roomId, isSuccess } = await wmpfVoip.initByCaller({
        caller: {
          id: '省略1' // 设备 SN
          // 不支持传 name,显示的是授权时「deviceName」+「modelId 对应设备型号」
        },
        listener: {
          // 参见 https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html 获取
          id: '省略',// 接听方 用户 openId
          name: '省略' // 接听方名字,仅显示用
        },
        roomType: 'video', // 房间类型。voice: 音频房间;video: 视频房间
        businessType: 1, // 1 为设备呼叫手机微信
        // voipToken: 'xxxxxxxxxx', // 使用设备认证 SDK 注册的设备传入 deviceToken,使用 WMPF RegisterMiniProgramDevice 接口注册的设备无需传入(插件 2.3.0 支持)
        miniprogramState: 'formal' // 指定接听方使用的小程序版本
      })

      if (isSuccess) {
        // 如果小程序启动直接进入插件页面,则不要调用 wx.redirectTo
        // wx.redirectTo({
        //   // url: wmpfVoip.CALL_PAGE_PATH
        //   // 插件 2.3.9 开始支持 CALL_PAGE_PATH, 低版本请传入 'plugin-private://wxf830863afde621eb/pages/call-page-plugin/call-page-plugin',
        // })
        console.warn('呼叫成功')
      } else {
        wx.showToast({
          title: '呼叫失败',
          icon: 'error'
        })
      }
    } catch (e) {
      // 参数错误的情况会通过异常抛出
      console.log(e)
      wx.showToast({
        title: '呼叫失败',
        icon: 'error'
      })
    }

  },

  authVoIP() {
    wx.requestDeviceVoIP({
      groupId: '',
      isGroup: false,
      sn: '省略', // Todo 向用户发起通话的设备 sn(需要与设备注册时一致),需要提前准备
      snTicket: '省略', // 获取的 snTicket
      modelId: '省略', // 「设备接入」从微信公众平台获取的 model_id
      deviceName: 'NKDR-400门口机', // 设备名称,用于授权时显示给用户
      success(res) {
        console.log(`requestDeviceVoIP success:`, res)
      },
      fail(err) {
        console.error(`requestDeviceVoIP fail:`, err)
      }
    })
  }
})

回答关注问题邀请回答
收藏

1 个回答

  • 高
    04-25

    请参考示例代码:https://git.weixin.qq.com/wxa_iot/voip-wxapp-demo

    04-25
    有用
    回复 3
    • 😈Zabanya
      😈Zabanya
      04-25
      解决了,caller和listener缺少了cameraStatus: 0
      04-25
      回复
    • 😈Zabanya
      😈Zabanya
      04-25
      还有请问以下代码之后在呼叫端(设备)显示,但是被呼叫端(手机)没有显示,这个情况目前有什么解决方法吗,我看了相关文档都没有后续解决方案
      04-25
      回复
    • 泽恒Zeki
      泽恒Zeki
      07-11回复😈Zabanya
      你是在设备里写的?
      07-11
      回复
登录 后发表内容
问题标签