如何使用SDL2使iOS 13和Android上的PS4和Xbox One控制器振动/隆隆声/触觉正常工作?
我使用SDL2,我试图让我的控制器在iOS13和安卓10上发出隆隆声。 您可以在下面看到我的代码摘录:如何使用SDL2使iOS 13和Android上的PS4和Xbox One控制器振动/隆隆声/触觉正常工作?,android,ios,controller,xbox-one,ps4,Android,Ios,Controller,Xbox One,Ps4,我使用SDL2,我试图让我的控制器在iOS13和安卓10上发出隆隆声。 您可以在下面看到我的代码摘录: joystick = SDL_JoystickOpen(device); SDL_Haptic * haptic = SDL_HapticOpenFromJoystick(joystick); SDL_HapticRumbleInit(haptic); SDL_HapticRumblePlay(haptic, (float)0.5, 2000); SDL_HapticClose(ha
joystick = SDL_JoystickOpen(device);
SDL_Haptic * haptic = SDL_HapticOpenFromJoystick(joystick);
SDL_HapticRumbleInit(haptic);
SDL_HapticRumblePlay(haptic, (float)0.5, 2000);
SDL_HapticClose(haptic);
但目前它只在装有PS4控制器的Android 10上运行,在Xbox One控制器上,对SDL_Numhappics()的SDL调用在iOS 13和Android 10上始终返回0,在iOS 13上的PS4控制器上也是如此
有人遇到过同样的问题吗?
如果是,是否有办法解决或解决
提前感谢您。您必须在关闭触觉之前添加SDL_延迟(2000)。如果你不这样做,那么你就在它发出隆隆声之前关闭了它
joystick = SDL_JoystickOpen(device);
SDL_Haptic * haptic = SDL_HapticOpenFromJoystick(joystick);
SDL_HapticRumbleInit(haptic);
SDL_HapticRumblePlay(haptic, (float)0.5, 2000);
SDL_Delay(2000);
SDL_HapticClose(haptic);
我还将添加相应的检查,如sdl2的wiki所示:
SDL_Haptic *haptic;
// Open the device
haptic = SDL_HapticOpen( 0 );
if (haptic == NULL)
return -1;
// Initialize simple rumble
if (SDL_HapticRumbleInit( haptic ) != 0)
return -1;
// Play effect at 50% strength for 2 seconds
if (SDL_HapticRumblePlay( haptic, 0.5, 2000 ) != 0)
return -1;
SDL_Delay( 2000 );
// Clean up
SDL_HapticClose( haptic );