Xstreaming串流软件是一款专为Xbox玩家打造的免费云游戏应用。它利用先进的串流技术,让你随时随地通过手机或平板畅玩Xbox平台上的精彩游戏。作为开源软件,Xstreaming不仅具备高度的兼容性,还提供了超清分辨率和极低的延迟体验,确保玩家能够享受到流畅、稳定的游戏过程。无需复杂设置,一键连接,即刻开启你的云游戏之旅。
XStreaming(Xbox Streaming)是一款开源免费Xbox串流应用,旨在安卓设备上远程你的Xbox series x/s,并且支持官方云游戏,让你可以在任何地方玩上Xbox平台游戏,本文将概述该应用的开发灵感及开发过程的思考,不会涉及过多技术细节,技术细节将会在后续的章节进行分享。
远程控制Xbox Series X/S:
允许用户通过安卓设备远程访问和控制Xbox主机,无论用户身处何地,只要设备连接网络,便可体验主机游戏。
支持云游戏:
用户可以通过XStreaming访问Xbox官方的云游戏服务,在无需主机的情况下直接在安卓设备上流畅地玩Xbox平台的云端游戏。
高清串流:
提供高质量的图像传输,保证游戏画质高清,支持多种画质调节以适应网络带宽,确保流畅体验。
无缝跨平台体验:
除了支持本地的Xbox串流,XStreaming还兼容Xbox Game Pass Ultimate用户,能够轻松访问大量的云端游戏库。
自定义控制器支持:
支持各种蓝牙控制器以及屏幕触控操作,让用户在移动设备上也能获得舒适的游戏体验。
开源免费:XStreaming是完全开源和免费的,用户可以自由下载使用,并根据自身需求进行定制开发。
多平台兼容:适用于多种安卓设备,无论是手机、平板,均能在不同屏幕尺寸上畅玩Xbox游戏。
低延迟优化:应用特别优化了网络延迟,确保远程串流游戏时能够减少操作延迟,提升用户的游戏体验。
安装完成后,点击确认进入软件,
进入首页后,点击右下角的设置(settings)
选择第一个选项,APP language。
然后选择,简体中文,保存
重启软件进入就是中文。
相关介绍
基本原理
如果没有接触过串流开发,肯定会疑惑远程音视频是怎么实时传输到客户端的。XStreaming的串流核心技术使用的是WebRTC。
WebRTC采集和传输音视频数据的过程可以分为三步进行:
实时捕获本地的音视频流
实时编码音视频并在网络中向对等端传输多媒体数据
对等端接受发送者的音视频,实时解码播放
在XStreaming的场景中,Xbox、云游戏服务器都已经对WebRTC的服务端做了实现,Xbox只要在设置中开启了远程游戏,Xbox即可化身为一台WebRTC服务器:
那么XStreaming只需要做的就是登录微软服务获得账号授权,处理WebRTC协议,最后可以跟主机或云游戏服务器直连即可。
架构
考虑到后续支持Android和iOS双端,以及部分可复用的开发资源, XStreaming选用React-native作为基础开发框架。为了便于调用WebRTC的相关原生接口,选择在webview里面做WebRTC协商。由于Xbox串流必须使用微软网络接口,为了避免Web端的跨域拦截,选择在React-native层面进行网络请求,进行微软服务器授权、串流凭证获取等操作。在原生层,主要处理串流时沉浸模式和登录签名算法逻辑,整体架构图如下:
XStreaming的原理和架构已经简单介绍,接下来将介绍XStreaming的主要功能。
分辨率支持
XStreaming支持1080P和720P的最大分辨率切换,1080P是目前已知微软服务串流的最大分辨率。切换分辨率的核心在发起串流会话请求时,API有一个deviceInfo的字段传递当前设备信息,设备名称如传递android,则最后服务端会返回720P的视频流,如传递windows则可以获取1080P。
云游戏支持
免代理支持云游戏是XStreaming区别其他移动端应用的一大特色,XStreaming的设置可以选择云游戏的默认地区,突破微软的区域限制,并且可以直接在XStreaming上串流云游戏,从目前串流的效果来看,大陆地区串流云游戏普遍有100ms甚至更高的延迟,玩回合制及战略类游戏绰绰有余,如需延迟更低的体验,可以配合主流加速器使用。
控制设备
XStreaming使用Navigator: getGamepads获取外接有线/蓝牙手柄,因此只要手柄是标准协议,XStreaming在串流期间都可以正确识别。但不排除部分手柄缺少Nexus按键(西瓜键)的情况,这种情况可以使用XStreaming内置的View + Menu组合键呼出主菜单。
如果外接手柄的键位不正确,也可以在XStreaming的按键映射界面重新映射按键:
此外XStreaming也提供了虚拟按键,供没有外接手柄的场景使用:
手柄振动
手柄振动也是游戏的一个重要体验,XStreaming通过vibrationActuator.playEffect将串流时服务端返回的振动信息转为实体手柄的具体振动,如果你的设备浏览器内核不是很低且支持标准navigator gamepad协议,那么可以获得一个比较完美的振动效果。如果你的浏览器内核不支持playEffect实现的振动:
XStreaming还提供了一个强制使用机身振动的模式:
这种振动模式在收到服务端的振动通知后,直接使用原生的振动模式,如果你希望把机身振动转移到外接手柄上,可以在系统设置里将振动重定向到外接设备上,这样一样可以获得较为完整的串流振动效果。
IPv6支持
XStreaming支持优先连接IPv6,如你需要在公网进行串流,开启优先IPv6连接将会大大提高握手连接的成功率。
玩家留言
跟帖评论