android 视频通话框架,Android基于腾讯云实时音视频仿微信视频通话最小化悬浮
最近项目中有需要语音、视频通话需求,看到这个像环信、融云等SDK都有具体Demo实现,但咋的领导对腾讯情有独钟啊,IM要用腾讯云IM,不妙的是腾讯云IM并不包含有音视频通话都要自己实现,没办法深入了解腾讯云产品后,决定自己基于腾讯云实时音视频做去语音、视频通话功能。在这里把实现过程记录下为以后用到便于查阅,另一方面也给有需要的人提供一个思路,让大家少走弯路,有可能我的实现的方法不是最好,但是这或许是一个可行的方案,大家不喜勿喷。基于腾讯云实时音视频SDK 6.5.7272版本,腾讯DEMO下载地址:链接: https://pan.baidu.com/s/1iJsVO3KBuhEiIUZcJPyv3g 提取码: ueey
一、实现效果
二、实现思路
我把实现思路拆分为了两步:1、视频通话Activity的最小化。 2、视频通话悬浮框的开启
具体思路是这样的:当用户点击左上角最小化按钮的时候,最小化视频通话Activity(这时Activity处于后台状态),于此同时开启悬浮框,新建一个新的ViewGroup将全局Constents.mVideoViewLayout中用户选中的最大View动态添加到悬浮框里面去,监听悬浮框的触摸事件,让悬浮框可以拖拽移动;自定义点击事件,如果用户点击了悬浮框,则移除悬浮框然后重新调起我们在后台的视频通话Activity。
1.Activity是如何实现最小化的?
Activity本身自带了一个moveTaskToBack(boolean nonRoot),我们要实现最小化只需要调用moveTaskToBack(true)传入一个true值就可以了,但是这里有一个前提,就是需要设置Activity的启动模式为singleInstance模式,两步搞定。(注:activity最小化后重新从后台回到前台会回调onRestart()方法)
@Override
public boolean moveTaskToBack(boolean nonRoot) {
return super.moveTaskToBack(nonRoot);
}
2.悬浮框是如何开启的?
悬浮框的实现方法最好写在Service里面,将悬浮框的开启关闭与服务Service的绑定解绑所关联起来,开启服务即相当于开启我们的悬浮框,解绑服务则相当于关闭关闭的悬浮框,以此来达到更好的控制效果。
a. 首先我们声明一个服务类,取名为FloatVideoWindowService:
public class FloatVideoWindowService extends Service {
@Nullable
@Override
public IBinder onBind(Intent intent) {
return new MyBinder();
}
public class MyBinder extends Binder {
public FloatVideoWindowService getService() {
return FloatVideoWindowService.this;
}
}
@Override
public void onCreate() {
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
super.onDestroy();
}
}
b. 为悬浮框建立一个布局文件float_video_window_layout,悬浮框大小我这里固定为长80dp,高120dp,id为small_size_preview的RelativeLayout主要是一个容器,可以动态的添加view到里面去
android:
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/colorComBg"
android:orientation="vertical">
android:
android:layout_width="80dp"
android:layout_height="120dp"
android:descendantFocusability="blocksDescendants"
android:orientation="vertical" />
android 视频通话框架,Android基于腾讯云实时音视频仿微信视频通话最小化悬浮相关推荐
- android修改视频聊天帧率,Android基于腾讯云实时音视频仿微信视频通话最小化悬浮(4)...
Activity中的操作 现在我们将思路了捋一下,假设现在我正在进行视频通话,点击视频最小化按钮,我们应该按顺序执行如下步骤:应该是会出现个悬浮框.我们用mServiceBound保存Service注 ...
- Android基于腾讯云实时音视频实现类似微信视频通话最小化悬浮
最近项目中有需要语音.视频通话需求,看到这个像环信.融云等SDK都有具体Demo实现,但咋的领导对腾讯情有独钟啊,IM要用腾讯云IM,不妙的是腾讯云IM并不包含有音视频通话都要自己实现,没办法深入了解 ...
- 基于腾讯云实时音视频(TRTC)的web端 多人人脸识别小游戏
场景介绍 一个双人视频互动的小游戏, 连接后,可以实时看到对方的视频情况, 根据对方的视频情况实时进行游戏操作 摇头进行控制挡板 不让球掉落. 眨眼发球. 准备工作 获取应用 SDKAppID 和 应 ...
- 一个基于腾讯云实时音视频的SDKdemo
哈咯大家好,这里是码农的搬运工!! 这几天也是一时兴起,想到腾讯云的实时音视频的SDK来进行一个真正的视频通话,也是编写了一个小小的demo 话不多说,整活,开干!!! 首先哈,我们评估下腾讯云的这个 ...
- 基于腾讯云实时音视频Web API之Demo运行
曾针对一个视频通话项目需要借助到腾讯云对应的Web API 实现,众所周知,了解其用法最好的途径就是先运行Demo程序,但对于不具备Vue基础的人来说,运行官网Demo是一件困难的事.下面记录一下适合 ...
- 腾讯云实时音视频带你玩转语音聊天室
声音交友,在线K歌,自由上麦,声波传达-- 从最初单一的一对一语音通话,到后来火爆的多人语音群聊,再到现在聚集了一批"音控"的纯语音聊天室,当代年轻人的社交APP里最不可少的功能就 ...
- 腾讯云实时音视频( TRTC)通话质量监控仪表盘
腾讯云实时音视频(Tencent RTC,简称 TRTC)是一项低延时.高并发.稳定可靠的音视频 PaaS 云服务,主要提供多人实时通话以及低延时互动直播能力.TRTC 将腾讯 21 年来在网络与音视 ...
- 新知实验室 腾讯云实时音视频产品体验
新知实验室 腾讯云实时音视频TRTC产品体验 接入腾讯云实时音视频 TRTC基本实现逻辑 创建实时音视频应用 获取APPID 下载含UI的集成方案代码 方案中重要代码结构简析 index.vue co ...
- 新知实验室 腾讯云实时音视频 RTC WEB端初识
这里写目录标题 前言 初识产品 产品介绍 基础功能 高级功能 扩展功能 快速上手 位置 创建 源码下载 源码文档 写入密钥 使用 调试区域 前言 当前时代是信息行业飞速发展的时代,万物都在朝物联网方向 ...
- 腾讯云实时音视频技术发展简史 — 从编解码器容错优化到云端决策系统
从2016开始,腾讯启动将传统的音视频解决方案逐步部署在腾讯云上,从传统的FFmpeg.OBS.RTMP开始提供了第一代直播服务.随后演进到以QUIC与HLS低延迟直播.最后在网络拥塞算法与Codec ...
最新文章
- 梅尔频率倒谱系数(MFCC)资源
- leetcode算法题--Integer to Roman
- SCOPE_IDENTITY 和 @@IDENTITY 的区别
- Perl sendmail
- Android插u盘自动执行,android tv box ---- 插入u盘直接播放指定文件夹中的视频
- 女性最常说的5大谎言:
- 【转】Java和C++的区别有哪些?
- 我有一张1996年版一元钱,值多少钱?
- 《原力计划【第二季】》第1周周榜揭晓!!!
- vb以类名或窗口标题查找句柄并关闭
- 美国python网课免费-去不了USA?那又怎样?美国名校网课免费学!
- python哪里下载-python从哪下载
- 极光尔沃:太空3D打印机首次亮相 航天领域应用潜力巨大
- CentOS 6忘记密码解决方法(三分钟超快o)
- miui patchrom项目开发详细教程(Being updated)
- 遗传算法流程概述与简单实例认知
- 自己搜的算法题2.0
- !和!!的区别和用法
- LeetCode 1348. 推文计数
- 如何测算BMI指数(Python)
热门文章
- 一行 Python 能实现什么丧心病狂的功能?
- python画图像_使用python绘制SDSS图像
- js:Cannot use import statement outside a module
- VALUES LESS THAN value must be strictly increasing for each partition,MySQL分区需要注意的坑
- 如何使用 Windows 电脑向 Android 设备安装 apk 应用
- 9367: 【动态规划】雷涛的小猫
- 使用Ps制作飞机路过的动画
- 《大道至简-软件工程实践者的思想》读书笔记
- Windows10专业版系统“本地组策略编辑器”丢失解决方案
- Codeforces - Array Queries