Android IMS 语音通话 vs 视频通话 vs 视频彩铃

article/2025/10/13 5:09:38

背景

以下内容基于Android P code。

主要差异

视频通话比语音通话主要是多了判断是否为视频通话,及视频的显示和传输。如下:

video call 视频界面显示控制

界面通过IVideoProvider控制camera的显示并设置TextureView等,Ims service通过IVideoCallback来通知一些media的更新。如下

                                                         图、视频通话进程交互

判断是否为视频通话

视频通话同ims语音通话逻辑几乎相同,不一样的地方在于他们的video state不同,因为应用通过video state来判断是否为视频通话。

设置video state及通过video state更新界面的流程如下:

webp

                                                                                图、video state

1. 拨号时,拨号盘调用TelecomManager#placeCall()的参数中带有video state,Telecom将这个video state传给Telephony,并放入Phone的参数中,CallTracker在拨号时会把这个video state转换成ImsCallProfile中的call type,Ims service 拨号时从profile中拿出这个call type再判断是否拨打视频电话。

2. 来电时,IImsCallSession中有包含call type的ImsCallProfile,并从中拿到video state更新ImsPhoneConnection。之后通知Telephony应用来电,Telephony通话Telecom来电,在Telecom和Telephony建立连接后,从ImsPhoneConnection中拿出video state放入telecom/Connection中,并返回该Connection给Telecom/Call,Telecom/Call更新VideoState。

3. Telecom在和InCallUI建立连接后,会把Telecom/Call的信息更新到telecom/Call中,telecom/Call判断为视频电话后会建立VideoCall,并通知InCallUI/Call更新,以此触发界面更新。

视频显示及传输

视频显示其实就是在通话界面加两块TextureView,一块用来显示本机camera拍下的视频画面即preview TextureView,一块用来显示对端camera拍下来并传输过来的视频画面即remote TextureView。其具体显示流程如下:

                                                                      图、视频显示及传输流程

 

视频与语音通话互切

语音通话切视频通话

如图:

                                                                          图、发起方

                                                                          图、被动方

视频彩铃

视频彩铃和视频通话的不同点在于:

1. 视频彩铃仅在alerting状态显示,而视频通话各个状态都可以。

2. 视频彩铃显示网络端在本端投放的视频,而视频通话显示本端和对端相机拍摄的画面。

因此,判断视频彩铃的依据为:

1. call state为alerting。

2. video state仅有RX,没有TX。



作者:朱兰婷
链接:https://www.jianshu.com/p/b47c0b9ee316
 


http://chatgpt.dhexx.cn/article/kf2jNcwi.shtml

相关文章

Unity 语音和视频通话快速解决方案——声网 SDK接入指南(Android)

Unity 语音和视频通话快速解决方案——声网 SDK接入指南(Android) 文章目录 Unity 语音和视频通话快速解决方案——声网 SDK接入指南(Android)一、前言二、后台创建应用三、获取 SDK四、接入 Agora Voice 语音 SDK1. 导入工程2. 搭…

技术分享| 小程序实现音视频通话

上一期我们把前期准备工作做完了,这一期就带大家实现音视频通话! sdk 二次封装 为了更好的区分功能,我分成了六个 js 文件 config.js 音视频与呼叫邀请配置 store.js 实现音视频通话的变量 rtc.js 音视频逻辑封装 live-code.js 微信推拉…

快速开放,推荐一个视频通话sdk agora

1,agora 推荐一个做实时视频的sdk。 做互联网公司,要快速做出自己的稳定的产品。 视频,语音聊天还是有一定的门槛的。 http://cn.agora.io/ 做互联网的要的就是要快速 2,每个月还有免费的流量 上线后每月10000分钟免费。这个…

基于linphone android sdk 的voip语音、视频通话 教程三、视频通话

如果觉得下面的麻烦可以直接到https://item.taobao.com/item.htm?id587133228080获取源码。源码功能性更好、更完善。 想测试apk请加群261074724 最新的sdk4教程地址 https://blog.csdn.net/Java_lilin/article/details/84842314 前面两篇介绍了注册、拨打、接听等 参考地…

Web项目引入Agora SDK实现视频通话功能

零、前言 简介:声网Agora。一个专注移动端的高清实时通话云服务解决方案。 (1)声网Agora成立于2013年,是实时音视频云行业开创者和全球领先的专业PaaS服务商。开发者只需简单调用Agora API,30分钟即可在应用内构建多种…

Android之 集成音视频通话

一,背景 1.1 最近接收一个即时通讯二开项目,即时通讯部分用的XMPP协议,音视频则是集成的国外的开源免费库jitsi-meet-sdk-2.4.0-4.aar,是基于WebRTC的开源框架。但客户想要微信那种页面的排版,后来经研究jitsi是不能修…

Unity实战篇 | 接入 声网SDK 实现 视频通话——自己动手做一个 视频通话

目录 🐱‍🏍前言🎂Unity 接入 声网SDK 实现 音视频通话第1️⃣步,创建声网应用第2️⃣步,获取相应的SDK第3️⃣步,将SDK接入Unity中第4️⃣步:搭建一个测试场景,编写测试代码第5️⃣步:视频通话API第6️⃣步:视频通话 效果测试🎂案例下载链接🎨总结🐱‍🏍

Android技术分享| 视频通话开发流程(二)

多人呼叫 多人呼叫与点对点呼叫区别在于多人呼叫是一次呼叫1个以上的人,中途也可以再呼叫邀请别人加入通话。 整个呼叫的流程跟点对点呼叫类似,但也有些区别,需要添加额外的 API 逻辑来实现功能。下面我们分主叫被叫两种角色来分析。 主叫 …

Web音视频通话解决方案 —— Agora Web SDK NG 版接入教程

引言 随着社会的发展,人们对实时音视频的需求越来越多。在线会议,电商直播,在线教育等相关产品不断涌现。但是对于个人开发者或者小团队来说,自己实现一个实时音视频服务并且要保障服务稳定,满足低延时等要求&#xf…

基于声网 SDK 实现 iOS 端的一对一视频通话

在很多产品,加入实时视频通话已经不是新鲜事情了,尤其是近几年的疫情影响,个人公司国家对于实时音视频的需求一直在快速的增长。例如视频会议、社交应用、实时游戏,甚至也可能出现在一些元宇宙的场景中。 本文将教你如何通过声网…

web端视频通话sdk集成和功能实现流程(实时视频系列五)

本文介绍的是在wed端如何集成即构音视频SDK,以实现在wed端一对一,一对多及多人实时视频通话的功能。 一、SDK集成指引 1、安装 请从 jZego-RTC-SDK 下载 SDK。 npm下载包支持typescript语言(推荐): npm i webrtc-zego 2、集成SDK 可使用s…

《保姆级教程》基于Agora SDK实现音视频通话及屏幕共享

😄作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD 如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。😊 座右铭:不想…

保姆级教程!基于声网 Web SDK实现音视频通话及屏幕共享

前言 大家好,我是 小曾同学,小伙伴们也可以叫我小曾~ 如果你想实现一对一音视频通话和屏幕共享功能,不妨来看看这篇文章,保姆级教程,不需要从零实现,直接集成声网 SDK 即可轻松上手。 本文也…

Android设备实现语音视频通话

一、背景 有智慧社区相关的项目,需要门禁开发门禁机APP以及用户端APP,要求实现门禁设备呼叫业主APP,业主接通后可以通话、可以开门。这里主要要做的就是语音和视频通话功能,以及远程开门。至于业务逻辑那就是正常的需求处理了。 …

基于 Web SDK 实现视频通话场景 | 声网 SDK 教程

声网视频 SDK 被广泛应用于多种实时互动场景中,例如视频会议、视频通话、音视频社交、在线教育等。为了让刚刚接触声网 SDK 的开发者,可以更顺畅地实现基础的视频通话功能,我们基于声网 Web SDK 4.x 版本梳理了本篇教程。 在本文末&#xff0…

如何基于 Agora Android SDK 在应用中实现视频通话?

在很多产品,实时视频通话已经不是新鲜的功能了,例如视频会议、社交应用、在线教育,甚至也可能出现在一些元宇宙的场景中。 本文将教你如何通过声网Agora 视频 SDK 在 Android 端实现一个视频通话应用。声网 SDK 每个月会提供 10000 分钟的免…

Android uni-app实现音视频通话

前言 上一篇讲解了怎么实现Android uni-app封装原生插件,这篇讲解一下,把anyRTC的RTC(音视频通讯)封装uni-app 实现音视频通话。 不了解anyRTC的小伙伴,可以点击下面链接: 开发者官网 1.效果图 先上图&a…

使用 Agora SDK 开发 React Native 视频通话 App

在 React Native 的应用中,从头开始添加视频通话功能是很复杂的。要保证低延迟、负载平衡,还要注意管理用户事件状态,非常繁琐。除此之外,还必须保证跨平台的兼容性。 当然有个简单的方法可以做到这一点。在本次的教程中&#xf…

MySQL联合索引底层数据结构是怎样的

目录 1. 联合索引数据结构图 2.联合索引是如何进行排序的 3. 联合索引查询特点 1. 联合索引数据结构图 如下图所示联合索引的数据结构, 通过name,age,position三个字典进行一个联合索引,构建B树索引结构。 2.联合索引是如何进行排序的 B树…

MySQL联合索引在B+树如何存储以及寻址

文章目录 引入Innodb B树联合索引存储以及寻址总结 引入 最近找工作, 去一家三方支付公司面试,前面得过程还挺好,所有的提都回答对了(心里暗自窃喜应该能拿到高工资offer,迎娶白富美,然后走向人生巅峰&…