Android开发:实现安卓屏幕分享及视频聊天?(源码,可与PC端互通) 您所在的位置:网站首页 安卓聊天软件源码怎么用的啊 Android开发:实现安卓屏幕分享及视频聊天?(源码,可与PC端互通)

Android开发:实现安卓屏幕分享及视频聊天?(源码,可与PC端互通)

2024-07-11 23:32| 来源: 网络整理| 查看: 265

在一些有人际互动的手机APP中,增加语音视频聊天功能是一个常见的需求。而现在,更进一步,在某些场景下,我们需要能将自己的手机屏幕分享给他人,或者是观看他人的手机屏幕。那么,这些常见的功能是如何实现的了?我为此专门写了一个安卓版的Demo,并将源码放出来供大家参考,希望对大家有所帮助。

一.功能介绍1. 视频聊天

(1)每个登录的用户都可向其他任意在线用户发送视频聊天请求。

(2)当收到来自其他在线用户的视频聊天邀请时,可接受或拒绝对方的请求。

(3)当接受其他在线用户的视频聊天邀请时,就启动视频聊天。

2.屏幕分享

(1)每个登录的用户都可向其他任意在线用户发送屏幕分享请求;当对方未响应时,可主动取消屏幕分享请求。

(2)当收到来自其他在线用户请求屏幕分享时,可接受或拒绝对方的请求。

(3)当发送方收到其他在线用户同意屏幕分享时,即可观看其屏幕

(4)被控端和主控端都可主动断开屏幕分享。

二.开发环境1.开发工具:

Android Studio 4.0

2.开发语言:

JAVA

3.主要框架:

Netty 、OMCS

三.具体实现

类似视频聊天或屏幕分享这样的功能,一般是C/S架构的。在这种应用中,服务端相对简单,其主要是在客户端之间转发消息。本Demo提供了一个非常简易的C#服务端(开发环境:VS 2022),直接运行起来即可。下面我们将主要介绍安卓端的实现。大家可以从文末下载安卓端的源码,在阅读本文时对照源码,就会更清楚些。首先,我们先要确定客户端之间相互通信的消息类型。

1.自定义消息类型 InformationTypes

这里我们定义了为了实现第一部分“功能介绍”中的功能,所需要用到的消息类型。

2. 获取安卓系统权限

在安卓上进行视频聊天和屏幕分享,APP需要向安卓系统申请3个权限:麦克风、摄像头、屏幕录制。

(1)获取相机、麦克风、存储权限

当安卓手机首次进入该Demo时, 将弹窗提示获取设备权限:

注:若禁止了这两个权限,后续就无法进行正常的视频聊天了!

(2)屏幕录制权限

当收到其他在线用户的屏幕分享请求并回复同意时,将弹窗获取屏幕权限:

注:若禁止该权限,后续对方就无法看到分享者的屏幕了。

3. 发送视频聊天请求

当发起视频聊天时,将显示视频聊天窗口,并打开手机摄像头预览画面,然后向对方发送视频通话请求:

运行起来的UI截图如下所示:

4. 回复对方视频请求

当收到对方的视频聊天邀请时,将进入视频预览页面,显示视频邀请。

当点击“接听”或“挂断”按钮时,就会发送视频聊天回复消息:

5. 相互连接对方的摄像头、麦克风

当对方回复同意时,自己和对方将相互连接到对方的麦克风和摄像头。

当摄像头和麦克风都连接成功后,就可以正常视频聊天了。

6. 屏幕分享功能实现

屏幕分享功能的业务逻辑与视频聊天功能的业务逻辑是相似的,这里就不再赘述了,大家可以自行参看源码。

四.部署运行

关于Demo的源码介绍就这么多了,接下来我们看如何将Demo运行起来。

1. 启动服务端

解压 VideoChatMini.rar 后,进入解压目录,依次进入 VideoChatMini.Server -> bin -> debug 。双击 Oraycn.Demos.VideoChatMini.Server.exe ,即可启动视频聊天服务端。服务端运行界面如下所示:

2. 运行安卓端

解压安卓端源码压缩包 VideoChatMini.Android.rar,解压后,使用 Android Studio 打开并编译,将生成的apk发送到手机安装。

我们可以用两部手机,启动并登录两个安卓客户端,登录的账号密码可以随便填。安卓端登录成功后,出现如下界面:

我们在 “对方ID” 输入框中填上对方的登录账号,就可以发起视频聊天邀请了。对应的界面截图在前面已经贴出来了。对方同意视频邀请后,两个人就开启视频聊天了,运行效果如下所示:

五.源码下载

Android 端:http://www.oraycn.com/DownLoadFiles/OMCS/VideoChatMini.Android.rar

服务端 + PC 端:http://www.oraycn.com/DownLoadFiles/OMCS/VideoChatMini.rar

在这里,我也给出了PC端的源码,PC端项目对应的目录是 VideoChatMini.ClientWPF。服务端和PC端都是 C# 开发的(开发环境是 VS2022),PC端UI使用的是WPF。

PC端和安卓端是可以互通的,也就是可以相互视频通话,以及观看屏幕/桌面。

希望这篇文章会对你有所帮助,谢谢。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有