客户端App可以通过SDK向云端系统发送键盘、鼠标、手柄、触摸等外设事件。前后台的交互过程见链接。
客户端可以通过TcrSession#getKeyboard()
获取到Keyboard
对象, 从而向云端发送任何键盘按键的按下和抬起事件。
Windows键盘的KeyCode规范参考链接,在SDK内部的定义见WindowsKeyEvent
类。
客户端可以通过TcrSession#getMouse()
获取到Mouse
对象, 从而向云端发送鼠标左右键的按下、抬起和移动事件,以及鼠标中键的滚轮事件。
如果云端应用支持手柄操作(例如手柄游戏),客户端可以通过TcrSession#getGamepad()
获取Gamepad
对象, 从而向云端发送手柄任意按键的按下和抬起事件。
为了触发云端手柄插入和断开事件,可以调用Gamepad#connectGamepad()
和Gamepad#disconnectGamepad()
方法。
无论云端是移动应用(Android系统)还是桌面应用(Windows系统), 都可以支持触摸屏操作。
当云端应用支持触摸屏操作时, 客户端可以通过TcrSession#getTouchScreen()
获取TouchScreen
, 从而向云端发送触摸事件。
如果您使用了SDK提供的TcrRenderView
视图进行渲染,那么我们还提供了该视图触摸事件的一些默认实现类,可以很方便地将客户端触摸事件转换为云端外设事件并发送给云端,例如将客户端触摸屏上的点击事件映射为云端鼠标的点击事件。适合大多数客户直接使用,不用做复杂的开发。
该类实现了TcrRenderView
视图上的触摸事件自动转换为云端触摸屏的触摸事件,并发送到云端。触摸的坐标点值会根据视图的ScaleType进行相应计算。
创建该对象实例,并且通过TcrRenderView#setOnTouchListener()
设置给渲染视图,例如
TcrRenderView.setOnTouchListener(new MobileTouchListener(mSession));
该类实现了TcrRenderView
视图上的触摸事件自动转换为云端鼠标事件,并发送到云端。PcTouchListener
实现的默认触摸行为如下
- 单指短按: 用户在
TcrRenderView
按下时,向云端发送鼠标左键的按下事件,抬起时,向云端发送鼠标左键的抬起事件。 - 单指长按: 用户在
TcrRenderView
按下时,向云端发送鼠标左键的按下事件,抬起时,向云端发送鼠标左键的抬起事件。 - 单指移动: 用户在
TcrRenderView
移动时,给云端发送鼠标移动事件,并且移动TcrRenderView
视图上的鼠标位置, 客户端可以通过PcTouchListener#setMouseConfig()
函数修改鼠标移动的方式(例如相对移动、绝对移动)、移动速度,以及设置鼠标是否隐藏。 - 单指双击: 无任何行为。
- 双指操作: 用户在
TcrRenderView
上双指捏合时,可以缩放TcrRenderView
;双指平移时,可以拖动TcrRenderView
, 该操作不会给云端发送任何事件。
创建该对象实例,并且通过TcrRenderView#setOnTouchListener()
设置给渲染视图,例如
TcrRenderView.setOnTouchListener(new PcTouchListener(mSession));
如果PcTouchListener
实现的默认触摸行为不满足您的需要,您可以对部分默认行为进行定制修改。
- 单指短按: 您可以实现
OnClickListener
接口,并通过PcTouchListener#setShortClickListener()
来自定义单指短按事件的行为。如果不自定义,PcTouchListener
默认是使用PcClickListener
对象来响应单指短按事件。您也可以通过PcClickListener#setMouseKey()
来自定义将发送到云端的鼠标按键类型。 - 单指长按: 您可以实现
OnClickListener
接口,并通过PcTouchListener#setLongClickListener()
来自定义单指长按事件的行为。如果不自定义,PcTouchListener
默认是使用PcClickListener
对象来响应单指长按事件。您也可以通过PcClickListener#setMouseKey()
来自定义将发送到云端的鼠标按键类型。 - 单指双击: 客户端可以实现
OnDoubleClickListener
接口并通过PcTouchListener#setDoubleClickListener()
定制单指双击事件。 - 双指操作:
PcTouchListener
内部使用PcZoomHandler
对象来处理双指操作,客户端可以通过PcTouchListener#setZoomHandler()
来自定义该行为,或者设置为null来屏蔽该行为。PcZoomHandler
类进一步通过ZoomListener
监听器暴露了一些定制能力。您可以通过ZoomListener#setZoomRatio()
设置缩放视图的比例范围,也可以通过ZoomListener#setZoomListener()
监听缩放系数以及缩放中心点。