端到端同屏的方案

手机游戏开发者 2024-9-2 22:16:51 22 0 来自 中国
场景:桌面端应用(electron开辟)同屏到pad端(uni-app开辟)。
方案一:socket指令发送操纵步调。

思绪:条件是桌面端与pad端表现的前端页面一样,即桌面端实行一个操纵后,立刻把该操纵发送到pad端,pad接收到后实行该操纵。
痛点:工作量大,要把服务端即桌面端的代码在pad上重新开辟一遍。
方案二:electron推流,uni-app拉流。

思绪:electron中用ffmpeg方法推流,output一个  rtmp://172.16.10.86/live/stream 流地址,pad中用uni-app中video标签直接可以播放。
<video src="rtmp://172.16.10.86/live/stream" style="width: 100vw;height: 100vh;" :autoplay="true" controls></video>痛点:延长大,10秒左右。
方案三:视频截图。

思绪:java封装一个截屏方法,并开启一个websocket服务,每20ms截一张图,以imageData的格式传到pad服务端,之后打包成.vbe的java包,放在electron项目中,当须要开始同屏时,electron中打开该java包
shell.openItem('D:/pro/static/tentacle/start.vbe')pad端创建一个canvas,每20ms去获取一下图片,放到cavas中。
痛点:慢,卡
方案四:webRTC传送视频流(现在项目中使用的方法)。

思绪:通过信令服务器举行信令数据交换(如媒体形貌信息SDP的交换,毗连地址的交换等),现在项目中使用的是socket.io搭建的信令服务器,之后可以直接通过传送视频流方式实现同屏。
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-11-23 20:28, Processed in 0.160107 second(s), 32 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表