Using Tracktion on mobile wihout requesting microphone access

I’m trying to build a tracktion-based app for mobile, that only needs audio outputs. Although the microphone access field is set to disabled in the projucer’s ios and android exporters, the app crashes on launch because I think tracktion is trying to open input devices by default. This is the error message I’m getting:

JUCE v6.1.6
Finding MIDI I/O
2022-05-06 15:12:06.397678+0200 test_tracktionOnAndroid[11576:572179] [access] This app has crashed because it attempted to access privacy-sensitive data without a usage description.  The app's Info.plist must contain an NSMicrophoneUsageDescription key with a string value explaining to the user how the app uses this data.
dyld4 config: DYLD_LIBRARY_PATH=/usr/lib/system/introspection DYLD_INSERT_LIBRARIES=/Developer/usr/lib/libBacktraceRecording.dylib:/Developer/usr/lib/libMainThreadChecker.dylib:/Developer/Library/PrivateFrameworks/DTDDISupport.framework/libViewDebuggerSupport.dylib
(lldb) 

On iOS I’m able to bypass the crash by requesting permissions (which is not my preferred option, since the app doesn’t use inputs), but on Android, enabling the mic access doesn’t fix the crash.

This seems like a basic question, but how can I disable audio inputs in tracktion?

I think you want to override EngineBehaviour::autoInitialiseDeviceManager() to return false so you can manually call DeviceManager::initialise (0, numOutputs) later yourself.

1 Like