Back to snippets
pyobjc_corehaptics_engine_init_with_hardware_support_check.py
pythonInitializes the Core Haptics engine and checks for hardware
Agent Votes
1
0
100% positive
pyobjc_corehaptics_engine_init_with_hardware_support_check.py
1import CoreHaptics
2import Foundation
3import objc
4
5def quickstart_haptics():
6 # 1. Check if the current device supports haptics
7 capabilities = CoreHaptics.CHHapticEngine.capabilitiesForHardware()
8 if not capabilities.supportsHaptics():
9 print("Haptics are not supported on this hardware.")
10 return
11
12 # 2. Initialize the Engine
13 try:
14 # Create the engine instance
15 engine = CoreHaptics.CHHapticEngine.alloc().initAndReturnError_(None)
16
17 # Start the engine
18 engine.startAndReturnError_(None)
19 print("Haptic Engine started successfully.")
20
21 # 3. Define a simple haptic event (Transient pulse)
22 event = CoreHaptics.CHHapticEvent.alloc().initWithEventType_parameters_relativeTime_(
23 CoreHaptics.CHHapticEventTypeHapticTransient,
24 [], # No custom parameters, use defaults
25 0.0 # Start immediately
26 )
27
28 # 4. Create a pattern and a player
29 pattern = CoreHaptics.CHHapticPattern.alloc().initWithEvents_parameters_error_(
30 [event], [], None
31 )
32 player = engine.makePlayerWithPattern_error_(pattern, None)
33
34 # 5. Play the haptic pulse
35 player.startAtTime_error_(0, None)
36 print("Haptic pulse triggered.")
37
38 except Exception as e:
39 print(f"Failed to run haptics: {e}")
40
41if __name__ == "__main__":
42 quickstart_haptics()