在uniapp开发中遇到的问题(agora声网进行视频通话)

自从uniapp诞生后,在实际开发的过程中使用的越来越多,虽说官方宣称是可以多平台进行适配,但在实际开发过程中可能是自己的能力不够,或者是其他什么问题,就感觉其实在做多平台的适配过程中特别是在功能的实现过程还是会遇到大大小小的问题,这里的所有前提是要去声网官方注册账号并申请频道和临时的token,具体操作请移步声网官方。

首先我们会想到去uniapp的官方插件市场看看,有没有可以用的插件,发现确实有声网的官方插件这里附上链接:https://ext.dcloud.net.cn/plugin?id=3720 大家可以去研究研究(本人不才反正最终没有选择这种方式去实现)

后来也下载了官方的实例项目导入Hbuilder里去运行,输入对应的appid,channel,token,运行确连实例视频图像都没出来,但是控制台是能看到已连接的。到这一步的时候我只能“曲线救国”了。

尝试的解决方法一:用vue的方式去实现视频通话的demo(并不能解决根本问题,因为是要在App中使用)

尝试的解决方法二:用android原生或者uniapp和android混合开发的的方式去实现视频通话(已成功解决)

### UniApp 中拨打电话和管理通话的 API #### 拨打电话功能 在 UniApp 开发环境中,可以利用 `uni.makePhoneCall` 方法来实现拨打电话的功能。此方法允许应用程序发起电话拨打请求给用户的默认电话应用。 ```javascript // 使用 makePhoneCall 函数进行拨号操作 uni.makePhoneCall({ phoneNumber: '1234567890', // 需要拨打的号码 }); ``` 该函数接受一个对象参数,其中包含待拨打的电话号码作为属性值[^1]。 #### 管理通话(音视频) 对于更复杂的通话场景比如音视频通话,则通常依赖第三方服务提供商如Agora声网)。通过集成这些服务商提供的 SDK 及其配套 API 来完成相应的开发工作。具体来说,在 uni-app 原生环境下支持单聊一对一、群组多人音视频通话等功能[^2]。 为了确保不同设备间的兼容性和互操作性,开发者还需要关注跨平台通信协议的设计与实现,特别是当涉及到多终端之间的信令传递时。这可能涉及学习如何处理来自 PC Web、Android 和 iOS 设备的消息交换机制。 另外值得注意的是,在某些特定情况下,例如使用 NVUE 组件构建界面时,可能会遇到一些特殊的限制条件或最佳实践建议,例如推拉流视频容器仅能在 NVUE 组件内有效运作等问题。 #### 录制音频并上传至服务器 如果目标还包括录制语音消息并通过网络发送出去的话,那么还可以借助于专门为此设计的一系列接口和服务。例如,可以通过调用合适的插件或者库来进行本地录音,并最终把生成好的 MP3 文件提交到远程服务器上存储起来以便后续访问[^3]。 ```javascript const recorderManager = uni.getRecorderManager(); recorderManager.start(options); recorderManager.onStop((res) => { console.log('停止录音'); const { tempFilePath } = res; uploadAudioFile(tempFilePath); // 自定义上传函数 }); function uploadAudioFile(filePath){ uni.uploadFile({ url: 'https://example.com/upload', filePath, name: 'file' }); } ``` 这段代码展示了怎样启动录音过程以及监听结束事件之后执行文件上传动作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值