前言

上一篇讲解了怎么实现Android uni-app封装原生插件,这篇讲解一下,把anyRTC的RTC(音视频通讯)封装uni-app 实现音视频通话。

不了解anyRTC的小伙伴,可以点击下面链接:

1.效果图

先上图,后讲解!

1.1 首页

1.2 游客界面

1.3 主播界面

2.GitHub地址

uni-app demo: 点击下载

3.demo下载:

下载地址:点击下载

扫码下载:

4.代码

4.1 集成插件

const RtcModule = uni.requireNativePlugin('AR-RtcModule');

AR-RtcModule:插件名称,首页集成插件

4.2 初始事件回调

//callback 接收

callbackFn() {

RtcModule.setCallBack((res) => {

switch (res.engineEvent) {

case "onWarning":

this.promptFn("warn", res.warningCode);

break;

case "onError":

res.errorCode != 18 ? this.promptFn("error", res.errorCode) : '';

break;

case "onJoinChannelSuccess": //用户加入成功

uni.hideLoading();

this.role == 1 ? this.PeerVideoUser.push(res.uid) : "";

this.videoShow = true;

setTimeout(() => {

// this.videoShowBg = false;

this.promptText = ""

//扬声器

RtcModule.setEnableSpeakerphone({

"enabled": true

}, (res) => {})

setTimeout(() => {

// 启用视频模块。

this.role == 1 ? this.setupLocalVideoFn() : RtcModule.enableVideo((res) => {});

}, 200)

}, 2000)

break;

case "onLeaveChannel": //离开频道回调

setTimeout(() => {

this.closeAll()

}, 500)

break;

case "onUserJoined": //远端用户加入当前频道回调。

// this.promptFn("info", "远端用户加入当前频道回调");

this.PeerVideoUser.push(res.uid);

break;

case "onUserOffline": //远端用户离开当前频道回调。

this.PeerVideoUser = this.PeerVideoUser.filter((x) => x !== res.uid);

break;

case "onFirstLocalAudioFrame": //已发送本地音频首帧的回调。(页面上添加音频)

break;

case "onFirstLocalVideoFrame": //已显示本地视频首帧的回调。(页面添加本地视频)

// this.promptFn("error", "已显示本地视频首帧的回调");

break;

case "onFirstRemoteVideoDecoded": //已完成远端视频首帧解码回调。(页面添加远端视频)

// this.promptFn("info", "已完成远端视频首帧解码回调");

this.promptText = "请稍等。。。"

let uid = []

uid.push(res.uid)

setTimeout(() => {

this.promptText = "";

// this.videoShowBg = false; //设置背景开关

setTimeout(() => {

uid.map(item => {

this.$refs[`popup${item}`][0].setupRemoteVideo({

"renderMode": 1,

"channelId": this.chanel,

"uid": item,

"mirrorMode": 0

}, (res) => {})

//预览

RtcModule.startPreview((res) => {});

})

}, 500)

}, 2000)

break;

}

})

},

res.engineEvent:接收各种回调,加入频道成功,离开频道,错误码等。

4.3 创建实例

await RtcModule.create({

"appId": this.appid //anyRTC 为 App 开发者签发的 App ID。每个项目都应该有一个独一无二的 App ID。如果你的开发包里没有 App ID,请从anyRTC官网(https://www.anyrtc.io)申请一个新的 App ID

}, (res) => {});

4.4 设置角色

setClientRole(num) {

this.role = num;

//设置直播场景下的用户角色

RtcModule.setClientRole({

"role": Number(num) //1:为主播,2:游客

}, (ret) => {});

},

4.5 加入频道

await RtcModule.joinChannel({

"token": "",

"channelId": this.channel,

"uid": this.uid

}, (res) => {})

token: 注册不开启token验证,可以为空着。

channelId: 你需要加入的频道ID。

uid: 每个用户分配唯一UID,不能重复。

4.6 离开销毁

RtcModule.leaveChannel((res) => {}); //离开频道

RtcModule.destroyRtc((res) => {}); //销毁频道

5.总结

基本重要的接口,在这里就基本上介绍完啦,如果大家还有什么疑问,可以在评论区留言!

作者:anyRTC-东慕雨

android打电话录音软件,Android uni-app实现音视频通话相关推荐

  1. android 动态录音权限,Android如何判断手机是否有录音权限的工具类

    作用 判断手机是否有录音权限的工具类,兼容6.0以上以及以下android系统 测试环境 这篇文章是评论中的网友提出质疑后,经过重写修改与重写测试后编写的,我的调试环境是小米note3,Android ...

  2. android蓝牙耳机录音播放,android蓝牙耳机录音并播放(二)

    Github下载 package com.example.superb.yy4; import android.content.Context; import android.media.AudioF ...

  3. android 实时录音播放,android 使用 audiorecord 和 audiotrack 实现实时录音播放

    基本思路就是用 audiorecord不断得到音频数据,然后使用audiotrack 播放 //得到音频 package com.ysg.audiotest; import java.io.IOExc ...

  4. 基于android的个人理财软件 android stu_Android聊天软件开发(基于网易云IM即时通讯)——注册账号(二)...

    OKhttp封装 IRequest package heath.com.chat.OKhttp;import java.util.Map;public interface IRequest {publ ...

  5. android 系统清理软件,Android软件大比拼:系统清理选择谁?

    [IT168厂商动态]近日,IDC在报告中指出,谷歌Android系统市场份额已接近80%.特别是在中国市场,大量千元以内Android手机的推出,加速了智能手机的快速普及.Android手机也成为用 ...

  6. android 第三方加密软件,Android实用图文教程之代码混淆、第三方平台加固加密、渠道分发...

    第一步:代码混淆(注意引入的第三方jar) 在新版本的ADT创建项目时,混码的文件不再是proguard.cfg,而是project.properties和proguard-project.txt. ...

  7. android通知栏自定义软件,android实现通知栏下载更新app示例

    1.设计思路,使用VersionCode定义为版本升级参数. android为我们定义版本提供了2个属性: android:versionCode="1" android:vers ...

  8. android屏幕广播软件,广西视听app下载 广西视听(广西广播电视台手机客户端) for Android v2.2.0 安卓手机版 下载-脚本之家...

    广西视听app是一款适用于安卓手机端的广西广播电视台手机客户端,包括新闻.广播电视节目直播.生活服务.影视点播等精彩内容,一网打尽广西广播电视台所有频率频道节目.感兴趣的朋友快来下载使用吧. 软件亮点 ...

  9. android 屏幕管理软件,Android Screencast下载

    Android Screencast旨在将您的Android手机或平板电脑的屏幕活动记录到视频中.创建教程,将你的游戏记录到高清视频中,准备在网络上共享.屏幕录像机使用方便,输出设置为比特率,视频大小 ...

  10. android ppt 注释软件,Android版WPS Office 5.5.2 发布 PPT悬浮备注框全面增强

    5月15日,金山宣布Android 版WPS Office 5.5.2 发布.本次更新对演示文档备注显示.PDF文档快速阅读及文档管理进行了优化.新版本Android 版WPS Office 将与安卓 ...

最新文章

  1. 静态路由与配置 知识点
  2. 成功解决xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF record; found b‘Debug is
  3. 英语语法---句子成分总结
  4. Tomact和MySql搭建android简单服务器
  5. mysql四种事务隔离级别
  6. Cant get connection to Zookeeper
  7. android 绕过root检测,公主连结怎么绕过root检测 绕过root检测方法一览
  8. Try Redis : Redis 入门教程
  9. python3怎么使用pyrex_用户指南 - Cython 和 Pyrex 之间的区别 - 《Cython 3.0 中文文档》 - 书栈网 · BookStack...
  10. AD转换中参考电压的作用 .
  11. mysql mvcc机制rc_Mysql中MVCC的使用及原理
  12. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(昆明),签到题HIL
  13. iOS使用多线程提高数据并发访问 之三
  14. 推荐几个Mac系统桌面吸色工具!颜色吸取器
  15. 树莓派 USB摄像头
  16. 计算机网络读书笔记DAY4(3)
  17. Python爬虫之小猪短租房
  18. 【培训版】《最强大脑记忆力训练教程》[2017年7月份更新]
  19. 大内高手 内存管理器
  20. EntityComponentSystemSamples学习笔记

热门文章

  1. HC32F4 CRC32校验(附软件CRC32校验)
  2. 哈工大在CoNLL上斩获全球第四,车万翔博士详解背后的技术细节
  3. 松下电视切换html,松下等离子电视如何用HDMI连接电脑?
  4. R语言绘图—在绘图中实现截断值
  5. 什么是示波器的采样率
  6. excel文件修复工具_用EXCEL自己制作批量修改文件名的实用工具
  7. ftp下载工具 免费,7大值得推荐的免费版ftp下载工具
  8. 我的时间管理类培训PPT
  9. 全国计算机二级C语言过关要求,计算机二级考试c语言过关经验
  10. C语言编程题必须运行吗,全国计算机二级c语言的的操作题一定要运行吗?