Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >TRTC Android端开发接入学习之实现语音通话(六)

TRTC Android端开发接入学习之实现语音通话(六)

原创
作者头像
腾讯云-hongyang
修改于 2020-09-10 05:10:27
修改于 2020-09-10 05:10:27
1.6K00
代码可运行
举报
文章被收录于专栏:音视频学习音视频学习
运行总次数:0
代码可运行

前言:

在上一篇《视频通话》中,我们实现了双方的视频通话,总所周知没有声音再好的戏也出不来,本期我们来学习如何使用TRTC完成语音通话的功能。

实现步骤

第一步:集成SDK

音视频通话组件 TRTCCalling 依赖 TRTC SDK 和 IM SDK,可以参考官方提供的集成指引,完成集成 TRTC集成文档IM集成文档

DEMO中主要文件

文件或文件夹

功能描述

TRTCAudioCallActivity.java

展示语音通话的主界面,通话的接听和拒绝就是在这个界面中完成的。

TRTCCallingEntranceActivity.java

用于展示选择联系人的界面,可以通过此界面搜索已注册用户,发起通话。

audiolayout

用于通话过程中用户画面的渲染和排布逻辑。

第二步:配置对应权限和混淆规则

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.RECORD_AUDIO" /> 
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> 
<uses-permission android:name="android.permission.BLUETOOTH" /> 
<uses-permission android:name="android.permission.CAMERA" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
<uses-feature android:name="android.hardware.camera"/> 
<uses-feature android:name="android.hardware.camera.autofocus" /> 

在 proguard-rules.pro 文件,将 SDK 相关类加入不混淆名单:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-keep class com.tencent.** { *; } 

第三步:在GenerateTestUserSig.java中配置SDKID和SECRETKEY

SDKAPPID:在音视频控制台中对应创建的应用的ID

SECRETKEY:音视频控制台对应的计算密钥,点击查看密钥获得

第四步:初始化SDK和登录

  1. 调用 TRTCCallingImpl.sharedInstance(context)获取组件实例。
  2. IM 登录
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 V2TIMManager.getInstance().login(userId, userSig,callback) 

3. Calling组件登录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/** 
*SDKAppId:腾讯云音视频控制台新建的APP的应用ID 
*userid:当前用户的ID,字符串类型 a-z A-Z 0-9 -和_ 
*userSig:生成腾讯云安全保护签名(测试demo从简 本地生成,     
*如果是正式发布需要放到后台接口放置被盗取) 
**/ 
login(SDKAppID, userId, userSig, callback)  

第五步:实现通话功能

  • 1V1通话实现
  1. 发起方:调用 TRTCCalling 的 call() 方法发起通话的请求, 并传入用户 ID(userid)和通话类型(type),通话类型参数传入TYPE_AUDIO_CALL。
  2. 接收方:当接收方处于已登录状态时,会收到名为 onInvited() 的事件通知。
  3. 接收方:如果希望接听通话,接收方可以调用 accept()函数,或者调用 reject() 拒绝此次通话。
  4. 当双方的音视频通道建立完成后,通话的双方都会接收到名为 onUserEnter() 的事件通知,此时说明双方已经进入通话。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 注册监听器
sCall.addDelegate(new TRTCCallingDelegate() {
    //...省略一些监听代码
    public void onInvited(String sponsor, final List<String> userIdList, boolean isFromGroup, int callType) {
        // 收到来自 sponsor 发过来的通话请求,此处代码选择接听,您也可以调用 reject() 拒绝之。
        scall.accept();
    } 
    public void onUserEnter(final String userId) {
        //用户接收了通话请求。此处编写接收后UI变化
    }
});
sCall.login(sdkappid, "aaa", usersig, new ActionCallback() {
    public void onSuccess() {
        sCall.call("aaa",TRTCCalling.TYPE_AUDIO_CALL);
    }
});
  • 多人通话
  1. 发起方:多人视频通话需要调用 TRTCCalling 中的 groupCall() 函数,并传入用户列表(userIdList)、通话类型(type)、 IM 群组 ID(groupId),其中 userIdList 为必填参数,通话类型为必填参数传入TYPE_AUDIO_CALL, groupId 为选填参数。
  2. 接收端:通过 onInvited() 事件通知能够接收到此次请求。
  3. 接收端:收到事件通知后可以调用 accept() 方法接听此次通话,也可以选择用 reject() 方法拒绝通话。
  4. 如果超过一定时间(默认30s)没有回复,接收方会收到 onCallingTimeOut() 的事件通知,发起方会收到 onNoResp(String userId) 事件通知。通话发起方在多个接收均未应答时 hangup() , 每个接收方均会收到 onCallingCancel() 事件通知。
  5. 如果需要离开当前多人通话可以调用 hangup() 方法。
  6. 如果通话中有用户中途加入或离开,那么其他用户均会接收到 onUserEnter() 或 onUserLeave() 事件通知。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 前面省略...
// 拼凑需要拨打的用户列表
List<String> callList = new ArrayList();
callList.add("bbb");
callList.add("ccc");
callList.add("ddd");
// 如果您不是在一个 IM 群里发起的, groupId 可以传一个空串;
sCall.groupCall(callList, TRTCCalling.TYPE_AUDIO_CALL, "");

//结束通话  挂断
mTRTCCalling.hangup();

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
TRTC Android端开发接入学习之实现语音聊天室(九)
多人语音是音视频通话的常见应用场景之一,TRTC对着这方面的支持必不可少,本次我们学习如何使用TRTC快速开发语音聊天室功能。
腾讯云-hongyang
2020/09/18
2K0
新一代音视频沟通利器 —— TRTCCalling
什么是TRTCCalling? TRTCCalling 是在 TRTC 和 TIM 的基础上诞生的一款快速集成的音视频的解决方案。支持1v1和多人视频/语音通话。 calling 可以做什么? 在线客服、在线面试、企业在线沟通、在线问诊、音视频社交等。 | 体验地址 | https://web.sdk.qcloud.com/component/trtccalling/demo/web/latest/index.html#/login 如何接入? 步骤1:集成 TRTCCa
腾讯云音视频
2021/10/18
1.9K0
TRTC Android端开发接入学习之实现视频通话(五)
经过上一篇《屏幕分享》功能的实践,我们知道了如何使用官方提供的功DEMO,快速开发。今天我们来尝试使用官方提供的组件和自定义的UI实现功能。
腾讯云-hongyang
2020/09/04
2.8K0
TRTC Android端开发接入学习之实现视频通话(五)
使用TRTC Web SDK实现实时音视频通话
在使用 TRTC Web SDK 中,经常需要使用到两个对象,Client 客户端对象,Stream 流对象:
yuliang
2021/03/03
3.8K0
iOS音视频接入 - TRTC接入实时视频通话
(前面我们已经了解TRTC的基本架构和功能,现在我们就来接入实时视频通话功能,此功能和微信的一对一视频通话是一致的,需要两个角色,一个角色是主动呼叫、一个为呼叫接听,结合使用场景我们来接入此功能。
小明同学接音视频
2020/10/13
6.6K0
iOS音视频接入 - TRTC接入实时视频通话
从零开始创建一个超简单的TRTC音视频通讯程序(web篇)
WebRTC 技术由 Google 最先提出,目前主要在桌面版 Chrome 浏览器、桌面版 Safari 浏览器以及移动版的 Safari 浏览器上有较为完整的支持,其他平台(例如 Android 平台的浏览器)支持情况均比较差。
F颜
2020/06/19
4.6K7
TRTC Android端开发接入学习之互动直播(七)
近年来,直播兴起,各家直播平台的火爆,支持演唱会的直播、主播、明星直播和带货直播等等等,TRTC提供了简便快捷完整的直播互动解决方案,这次我们来一起学习如何在android端使用TRTC完成互动直播的基本流程
腾讯云-hongyang
2020/09/11
2K0
TRTC Android端开发接入学习之视频会议(八)
视频会议是音视频通话的常见应用场景之一,TRTC对着这方面的支持必不可少,本次我们学习如何使用TRTC快速开发视频会议的功能。
腾讯云-hongyang
2020/09/15
1.9K0
TRTC Android端开发接入学习之常见问题(十一)
V1和V2主要区别在于IM的SDK是否内嵌于TRTC中,V1线路是内嵌,而V2则可选,默认不打包IM的SDK包。V2在通话质量、线路规格、接入难度以及功能扩展上均比V1更有优势。
腾讯云-hongyang
2020/09/27
3.3K0
实时音视频 TRTC 常见问题汇总---集成接入篇
TRTC 的日志默认压缩加密,后缀为 .xlog。日志是否加密是可以通过 setLogCompressEnabled 来控制,生成的文件名里面含 C(compressed) 的就是加密压缩的,含 R(raw) 的就是明文的。
腾讯视频云-Zachary
2019/11/01
14.7K1
实时音视频 TRTC 常见问题汇总---集成接入篇
实时音视频(TRTC)常见问题
一般而言,媒体音量指播放音乐、视频的声音、游戏声音等的音量,而通话音量指打电话的音量,视频通话的音量。
腾讯云-yyuanchen
2019/09/27
13.8K1
关于 TRTC (实时音视频通话模式)在我司的实践
腾讯实时音视频(Tencent Real-Time Communication,TRTC)将腾讯 21 年来在网络与音视频技术上的深度积累,以多人音视频通话和低延时互动直播两大场景化方案,通过腾讯云服务向开发者开放,致力于帮助开发者快速搭建低成本、低延时、高品质的音视频互动解决方案。
发声的沉默者
2021/06/14
2K0
关于 TRTC (实时音视频通话模式)在我司的实践
iOS音视频接入- TRTC语音聊天室
我们在之前的文章中已经了解了TRTC的1v1和多人语音聊天,本篇文章来了解下TRTC的语音聊天室。
小明同学接音视频
2020/10/16
3.7K0
实时音视频SDK,如何实现类似微信的纯语音通话功能?
实时音视频TRTCSDK适用的业务场景是视频会议、坐席视频、在线教育等,如果您希望实现类似微信的语音通话、语音会议功能,TRTCSDK也是支持的,只需要微调几个参数就可以实现,将采集音视频的api,换成只采集音频。
腾讯云-chaoli
2019/03/05
8.3K2
实时音视频SDK,如何实现类似微信的纯语音通话功能?
实时音视频开发学习9 - 进房权限和画质
开启进房权限的目的是为了避免非会员模式能够进入高级房间,同时解决客户端限制被破解的问题。目前进房权限在iOS、Android、Windows、Electron、微信小程序和Chrome 浏览器都支持。
金林学音视频
2020/08/27
1.9K0
实时音视频开发学习9 - 进房权限和画质
实时音视频(TRTC)通话前如何进行网络测速?
因为用户的网络环境各不相同,所以推荐您在用户首次通话前先进行一次测速,这将有助于我们选择最佳的服务器。具体实现代码如下:
腾讯云-yyuanchen
2019/09/27
3.2K0
产品动态 | TRTC React Native SDK上线啦
React Native 是一个使用React和应用平台的原生功能来构建 Android 和 iOS 应用的开源框架。通过 React Native,您可以使用 JavaScript 来访问移动平台的 API,以及使用 React 组件来描述 UI 的外观和行为:一系列可重用、可嵌套的代码。 TRTC React Native SDK 是基于腾讯云 iOS/Android 平台的 TRTC SDK 进行封装的,架构图整体跟Flutter类似。 TRTC React Native sdk类文件说
腾讯云音视频
2021/11/22
1.2K0
iOS音视频接入 - TRTC多人音视频通话
前一篇我们使用腾讯封装的TRTCCalling接入了1v1的音视频通话,今天还是使用此模块进行实现多人音视频通话及其常用TRTCSDK的API。
小明同学接音视频
2020/10/13
4.3K0
iOS音视频接入 - TRTC多人音视频通话
实时音视频V2版本,如何进行纯音频旁路直播
实时音视频TRTCSDK适用的业务场景是视频会议、坐席通话、在线教育等,也可以实现类似微信的语音通话、语音会议功能,
腾讯云-chaoli
2019/03/13
3.5K0
实时音视频V2版本,如何进行纯音频旁路直播
沉浸式搭建微信同款音视频通话之全流程(基操细节) | 技术创作特训营第二期
摘要:腾讯云音视频通话SDK不仅支持iOS、Android、Web、小程序、Flutter、uni-app等平台全球互通,而且还支持标清、高清、超高清等多种画质,提供微信视频聊天同款 UI 组件快速集成方案,仅需3步,最快一天即可完成集成上线,配合低延时高质量的音视频服务,轻松应对语聊、客服、医疗通信等场景需求,帮助开发者快速搭建稳定可靠的音视频通话应用。
三掌柜
2023/10/15
1.5K7
沉浸式搭建微信同款音视频通话之全流程(基操细节) | 技术创作特训营第二期
推荐阅读
相关推荐
TRTC Android端开发接入学习之实现语音聊天室(九)
更多 >
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档