如何实现纯网页语音视频聊天和桌面共享? (附源码)

一.主要功能及支持平台1.本Demo的主要功能有(1)一对一语音视频聊天。(2)远程桌面观看。(3)当客户端掉线时,会进行自动重连,当网络恢复后,重连成功。2.

(1)一对一语音视频聊天。

(2)远程桌面查看。

(3)当客户端离线时,会自动重新连接。当网络恢复后,重连就会成功。

2.支持平台

(1)支持的操作系统包括:Windows、信创国产Linux(银河麒麟、同心UOS)、Android、iOS、Mac、鸿蒙OS。

(2) 支持的CPU架构:X86/X64、ARM、MIPS、Loongarch。

(3)支持几乎所有主流浏览器:Chrome、Edge、Firefox、Safari、360浏览器、QQ浏览器等。

(4)另外,我们测试过,使用APP shell并在WebView控件中加载Demo页面也可以实现正常的视频聊天。

二. 开发环境

1.服务器:

服务器端开发环境为Visual Sudio 2022,开发语言为C#。

2、网页端:

PC版的Web开发环境是VS Code 1.85,使用vue 3。

移动Web开发环境为HBuilder 3.8.12,uni-app(导出H5)。

三. 运行效果

本Demo源码分为三部分,分别是服务器端、PC Web(横版)和手机Web(竖版)。接下来我们先看看移动Web的运行效果。

如何实现纯网页语音视频聊天和桌面共享? (附源码)

(1)首先是登录界面。登录界面共有三个输入框,分别是服务器IP、用户账号和用户密码。本demo中用户账号和用户密码可以随意填写。

(2)接下来是主页界面。首页界面有已连接提示框,表示当前已连接到服务器。当由于网络原因或者其他原因断开连接时,会提示连接已断开。

(3)发起视频聊天,输入对方账号,然后点击请求视频会话按钮,向对方发起视频聊天请求。对方接受请求,你们就可以聊天了。

下图是手机视频聊天的效果:

(4)接下来我们看一下PC端的运行效果。

登录后,在首页界面,左上角显示自己的一些信息,右侧窗口显示对方连接的摄像头或桌面。

(4) 下图是别人的电脑桌面。

输入对方的帐户,然后单击“请求远程桌面”。对方同意后,你就可以观看其他人的屏幕了。

四. 服务端源码说明

注意,由于浏览器限制,如果要将Web客户端部署到公网,则需要使用HTTPS协议,否则将无法访问摄像头。

相应的,服务器也需要使用WSS协议,因此需要准备SSL证书进行部署。如果只是在本地运行看看效果,则无需准备。

上图为服务器端初始化代码。如果您不打算部署,只是在浏览器中加载本地Demo页面,则需要注释掉上图中的第六行,并在第七行的MultimediaServerFactory.CreateMultimediaServer方法中的wssOption使用null。更换它。

如果您打算将网站部署在服务器上,则需要将X509Certificate2第五行的两个参数分别更改为您的证书的路径和密码。

五. Web端源码说明

本Demo中Web端包含两套代码。移动端Web使用Uniapp开发,PC端Web使用Vue框架开发。为了便于理解,下面对源码中的关键点进行解释。两套代码的逻辑基本相同,这里不做区分。

1. 消息定义

如何实现纯网页语音视频聊天和桌面共享? (附源码)

在这个Demo中,我们定义了10种用于Web客户端之间通信的消息类型。它们的定义如下:

const informationTypes={ //视频请求VideoRequest: 0, //回复视频请求结果VideoResult: 1, //通知对方挂断视频连接CloseVideo: 2, //通知好友网络原因导致的视频中断NetReasonCloseVideo: 3, //通知对方(忙)挂断视频连接BusyLine: 4, //远程桌面请求DesktopRequest: 5, //回复远程桌面请求结果DesktopResult: 6, //主动取消远程桌面请求CancelDesktop: 7, //对方(主机)主动断开远程桌面OwnerCloseDesktop: 8, //访客断开远程桌面连接GuestCloseDesktop: 9};由于这些消息类型经常被使用,因此需要将它们放置在全局可访问的地方。在移动Web源代码中,它被放置在Vuex中。 PC端Web源码中,放在src目录下的omcs目录下。

2. 自定义消息处理器

此时登录成功后,通过调用多媒体管理器上的SetCustomMessageReceivedCallback方法,我们向multimediaManager(多媒体管理器)注册一个回调函数。当收到其他用户或服务器的消息时,会触发该回调函数。

该回调函数会接收一个对象类型的参数,该参数包含消息类型和消息发起者的用户名数据,然后您可以根据消息类型完成自己的业务操作。下图是本Demo中定义的消息处理器:

3. 一对一语音视频

5. 断网重连

当网络断开时,用户进入离线状态(与服务器断开连接),并且每5秒会重新连接到服务器。提前将ConnectionInterrupted 和ConnectionRebuildSucceed 回调注入到多媒体管理器中,可以在媒体服务器断开连接并重新连接成功时做一些事情。

六. 如何在本地部署运行Web端

Web端包含两套代码。移动端Web目录为H5MediaDemo_WebH5,PC端Web目录为H5MediaDemo_WebPC。

1. 移动端web:

由于移动web是使用uniapp开发的,而uniapp项目需要通过HBuilder X来运行,所以需要安装一个HBuilder 浏览器才可以运行,如下图:

2. PC端web:

PC端使用Vue3开发,需要依赖NodeJS环境。因此,你需要在电脑上安装一个NodeJS(建议安装长期维护版本)。安装完成后,在命令行窗口输入node -v和npm -v检查是否安装成功:

确认安装成功后,通过命令行进入H5MediaDemo_WebPC的项目根目录,然后输入npm run dev运行项目。

用户评论

如何实现纯网页语音视频聊天和桌面共享? (附源码)
苏莫晨

哇,这个标题真的吸引了我!我一直想实现这样的功能,看看源码肯定能学到不少。

    有17位网友表示赞同!

如何实现纯网页语音视频聊天和桌面共享? (附源码)
不忘初心

好期待这个教程,我最近也在做类似的项目,希望能从中学到一些新的技巧。

    有20位网友表示赞同!

如何实现纯网页语音视频聊天和桌面共享? (附源码)
来自火星球的我

太棒了!我一直想了解纯网页语音视频聊天和桌面共享的实现方法,终于找到了。

    有18位网友表示赞同!

如何实现纯网页语音视频聊天和桌面共享? (附源码)
墨城烟柳

这标题太实用了,我马上保存起来,等有空了好好研究一下。

    有12位网友表示赞同!

如何实现纯网页语音视频聊天和桌面共享? (附源码)
未来未必来

看了标题,我马上就想到了之前遇到的技术难题,希望这个源码能解决我的问题。

    有14位网友表示赞同!

如何实现纯网页语音视频聊天和桌面共享? (附源码)
Hello爱情风

这功能听起来好高级啊,期待看到源码的具体实现过程。

    有10位网友表示赞同!

如何实现纯网页语音视频聊天和桌面共享? (附源码)
颓废人士

终于找到了,我一直想实现纯网页语音视频聊天和桌面共享,这个教程太及时了。

    有5位网友表示赞同!

如何实现纯网页语音视频聊天和桌面共享? (附源码)
凉城°

太好了,我已经迫不及待想要看看这个源码了,希望能帮我解决一些技术难题。

    有14位网友表示赞同!

如何实现纯网页语音视频聊天和桌面共享? (附源码)
滴在键盘上的泪

这标题太诱人了,我一定要研究一下,看看能不能应用到我的项目中。

    有11位网友表示赞同!

如何实现纯网页语音视频聊天和桌面共享? (附源码)
反正是我

这教程太棒了,我之前做项目时遇到过类似的问题,希望能从中学到一些新的思路。

    有13位网友表示赞同!

如何实现纯网页语音视频聊天和桌面共享? (附源码)
厌归人

这标题让我想起了之前看过的那些复杂的教程,希望这个源码能简单易懂。

    有10位网友表示赞同!

如何实现纯网页语音视频聊天和桌面共享? (附源码)
发呆

哇,这个功能真的很有用,我一定要试一试,看看能不能应用到自己的项目中。

    有17位网友表示赞同!

如何实现纯网页语音视频聊天和桌面共享? (附源码)
摩天轮的依恋

这个标题让我眼前一亮,我一直想实现这样的功能,希望这个教程能给我带来灵感。

    有8位网友表示赞同!

如何实现纯网页语音视频聊天和桌面共享? (附源码)
我怕疼别碰我伤口

太感谢了,终于找到了一个详细的教程,我对纯网页语音视频聊天和桌面共享的实现有了新的认识。

    有9位网友表示赞同!

如何实现纯网页语音视频聊天和桌面共享? (附源码)
旧事酒浓

这个标题太实用了,我之前的项目中也遇到了类似的问题,希望能从这个源码中找到解决方案。

    有7位网友表示赞同!

如何实现纯网页语音视频聊天和桌面共享? (附源码)
念安я

这个教程看起来很详细,我打算好好研究一下,希望能提升我的技术能力。

    有16位网友表示赞同!

如何实现纯网页语音视频聊天和桌面共享? (附源码)
如你所愿

这个标题太吸引人了,我已经迫不及待想要看看这个源码的具体内容了。

    有17位网友表示赞同!

如何实现纯网页语音视频聊天和桌面共享? (附源码)
浅笑√倾城

这个教程太有价值了,我已经收藏起来,以后肯定会有用的。

    有8位网友表示赞同!

如何实现纯网页语音视频聊天和桌面共享? (附源码)
无寒

这功能听起来好酷,我一定要试试看,看看能不能做出一个有趣的项目。

    有15位网友表示赞同!

综合资源

一对一语音视频付费交友软件市场如何?

2024-11-19 16:08:28

综合资源

《刘亦菲:美丽背后的非凡故事,以梦为马,绽放独特光彩》;

2024-11-19 16:15:43

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索