背景

以下内容基于Android P code。

主要差异

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

video call 视频界面显示控制

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

图、视频通话进程交互

判断是否为视频通话

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

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

图、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

Android IMS 语音通话 vs 视频通话 vs 视频彩铃相关推荐

  1. 从语音通话和视频通话两个方面搭建专属于自己的私有化部署的视频会议通话系统

    召开远程视频会议,可大大提高工作效率,节省与会人员的工作时间和会议费用.视频会议通话系统应用在政府.军队.教育.金融.交通.能源.医疗等行业及跨国.跨地区的企业中逐步普及. EasyRTC视频通话系统 ...

  2. Android P2P语音通话实现 【转】http://macleo.iteye.com/blog/1707455

    Android P2P语音通话实现(思路探讨) 博客分类: android android备忘录 1.http://www.cnblogs.com/milospooner/archive/2012/0 ...

  3. Android P2P语音通话实现(思路探讨)

    最近在在研究语音通话的实现,现在把我的实现思路记录在这里.不过,由于初次接触语音通话,所以这是一个简单的思路,也是经过google以及baidu之后的一个学习总结. 我认为一个语音通话系统至少有四个模 ...

  4. Android 平台语音通话及回音消除、噪音消除研究

    一 Android平台语音通讯 正因为Android平台优越的性能.美观的界面,越来越多人使用Android手机,从而在Android平台上的 语音通话越来越多.语音通话大概流程如下:我认为一个语音通 ...

  5. Android 平台语音通话及回音消除、噪音消除研究(转)

    一 Android操作系统由来 Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平 板电脑,由Google公司和开放手机联盟领导及开发.尚未有统一中文名 ...

  6. 【转】Android 平台语音通话及回音消除、噪音消除研究

    本文转自博客:https://www.cnblogs.com/jianglijs/p/8583603.html -------------------------------------------- ...

  7. android去掉语音通话功能的方法(只保留上网功能)

    需要在frameworks\base\core\res\res\values\config.xml新增下列2行,即可关闭语音通话功能<!-- This device is not "v ...

  8. 使用WebRTC实现语音通话,视频通话

    WebRTC介绍 WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的技术,谷歌2011年5月进行开源. ...

  9. Android手机间语音通话使用webrtc消除回音

    公司的产品智能门铃当与人通话过程中会产生回音,因此想用webrtc的回音消除模块来消除,所以让我写一个android间语音通话的demo来验证webrtc回音消除模块的效果,下面就是我实现这个demo ...

最新文章

  1. 挪动脑袋吃汉堡?AR版《贪吃蛇》帮你治好颈椎病
  2. html5手机网站照片查看器,PhotoSwipe
  3. SpringMVC控制器方法获取参数时@RequestParam注解加与不加的区别
  4. 快速制作BP神经网络结构示意图
  5. RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility.
  6. Python 安装 lxml 插件
  7. (最新)面向科研人员的免费遥感数据集
  8. 6.3.1 强连通分支算法--Kosaraju算法、Tarjan算法和Gabow算法
  9. python编程与几何图形pdf_《程序员数学:使用 Python 进行 3D 图形,机器学习和仿真》PDF 免费下载...
  10. 计算机一级cad试题,全国计算机等级考试一级试题与答案(25套)(1)2
  11. 李宏毅:1 天搞懂深度学习,我总结了 300 页 PPT(附思维导图)
  12. 30天自制操作系统笔记
  13. python中import用法sys_python sys模块的常见用法汇总
  14. 学习笔记-测试利器Mocha
  15. 软考-软件设计师 UML建模
  16. 虚拟机与宿主机网络配置——可互通可上网
  17. LeetCode——390.消除游戏
  18. [Android]SQLite版本升级前后数据对比
  19. 几个简单又实用的配色技巧
  20. 2021年焊工(初级)考试及焊工(初级)免费试题

热门文章

  1. php抢票插件下载,实测两款 GitHub 开源抢票插件,所有坑我们都帮你踩过了
  2. 0727Python总结-内置方法,数学模块,random随机模块,序列化模块pickle
  3. 给图片加图片边框 图片边框要求为PNG格式
  4. 600度近视眼恢复方法_近视600度还有救吗 怎么慢慢恢复
  5. 揭秘:深度网络背后的数学奥秘 1
  6. 项目一,认识linux操作系统
  7. 九月十月百度人搜,阿里巴巴,腾讯华为笔试面试八十题(第331-410题)(转)
  8. appium自动化的工作原理
  9. 让青春继续----缅怀我的大学生活
  10. iOS常用第三方框架