问题描述
提问者新购入了一个可以在 xinput 和 dinput 之间切换的控制器,并搭配 USB OTG 数据线试用于手机。起初该控制器在 xinput 模式下未能被手机识别,但转换至 dinput 模式后却可以正常工作。PC 上则能完美运行此控制器。提问者希望了解如何让控制器在 xinput 模式下也能被手机识别。
解决方案
方案1:DInput模式下的兼容性
请注意,此方法可能无法确保所有设备都有良好的支持。
根据最佳回复显示,在桌面及 PC 环境下,XInput 是 Xbox 360 控制器的核心功能之一且更适用于 Windows 平台。而 DInput 则是早期 DirectX 的一部分(DirectX 8.1 及以下版本),由于其广泛集成于 Windows 操作系统内,Android 设备通常会内置支持此模式。
尽管互联网上有说法指出几乎任何 Android 设备都可以通过 USB OTG 接口连接 Xbox 控制器并使其正常工作,但在实际操作中可能会遇到兼容性问题。提问者的设备和另一人的朋友的 XBox 控制器都在 dinput 模式下被识别而 xinput 模式下未被手机识别。
方案2:选择蓝牙控制器
请注意,此方法可能会增加一定的开支。
基于上述情况,建议考虑使用蓝牙适配的输入设备。已知市场上有许多支持 XInput 协议且能通过蓝牙连接于移动设备的控制手柄。提问者最后尝试了朋友提供的 8BitDo NES30 Pro 蓝牙控制器,并成功实现了在手机上的兼容性。
方案3:使用第三方适配器
此选项可能需要额外硬件支持。
部分第三方厂商提供了能够将 XInput 控制器适配到 Android 设备的解决方案。这类设备通常集成了 USB 桥接和蓝牙协议转换功能,可将 XInput 控制器信号转换为手机可以识别的形式。具体型号和应用效果请自行参考相关产品资料。
结论
从以上探讨中可以看出,在不同平台环境下,xinput 和 dinput 的兼容性表现可能有所差异,并非所有设备都能完美支持 xinput 模式下的 Xbox 控制器。考虑选择更适应手机环境的蓝牙控制器可能是最稳妥的方法之一。同时寻找合适的第三方适配器具也值得尝试以求达到更好的兼容效果。