Module: LCKOboe | Version: 1.0 | Platforms: Android only
Overview
LCKOboe provides high-performance, low-latency microphone capture on Android using Google’s Oboe audio library. It automatically selects the optimal audio API (AAudio on Android 8.1+, OpenSL ES on older versions).Supported Channels
| Channel | Supported | Description |
|---|---|---|
Game | No | Use FMOD or Wwise for game audio |
Microphone | Yes | Low-latency microphone capture |
VoiceChat | No | Use LCKVivox for voice chat |
Why Use LCKOboe?
Lower Latency
Significantly lower audio latency compared to Unreal’s audio capture
Optimal API
Automatically uses AAudio when available for best performance
VR Optimized
Designed for Meta Quest and other Android VR headsets
Battery Efficient
Efficient native implementation reduces power consumption
Dependencies
Requirements
- Android 5.0+ (API 21+)
- AAudio support recommended (Android 8.1+, API 27+)
RECORD_AUDIOpermission
Permissions
Add to yourAndroidManifest.xml:
Source Implementation
FLCKOboeSource
The core audio source class that captures microphone input via Google Oboe:| Member | Type | Description |
|---|---|---|
InputOboeStream | TUniquePtr<oboe::AudioStream> | The Oboe audio stream for microphone capture |
OboeCallback | TSharedPtr<FLCKOboeCallback, ESPMode::ThreadSafe> | Thread-safe audio data callback handler |
FLCKOboeCallback
Implements the Oboe audio stream callback interface. When Oboe delivers microphone samples,FLCKOboeCallback converts the data to 32-bit float PCM and fires OnAudioDataDelegate with ELCKAudioChannel::Microphone.
Audio Capture Pipeline
Automatic Integration
The plugin automatically:- Detects available audio APIs (AAudio vs OpenSL ES)
- Selects optimal configuration for the device
- Registers with the LCK audio system
Configuration
Default Settings
| Setting | Value |
|---|---|
| Sample Rate | 48000 Hz |
| Channels | Mono (1) |
| Format | Float32 |
| Performance Mode | LowLatency |
Project Configuration
For Meta Quest optimization, ensure these settings in your project:Performance Characteristics
| Device | API | Latency |
|---|---|---|
| Meta Quest 2/3 | AAudio | ~20ms |
| Quest Pro | AAudio | ~15ms |
| Other Android 8.1+ | AAudio | ~25ms |
| Android < 8.1 | OpenSL ES | ~40ms |
Troubleshooting
No microphone audio
No microphone audio
- Verify
RECORD_AUDIOpermission is granted - Check if another app is using the microphone
- Verify microphone hardware is working
- Confirm
AudioStreamis not null in LogLCKOboe
High latency
High latency
- Ensure device supports AAudio (Android 8.1+)
- Check for other audio apps that might affect performance
- Verify Vulkan rendering is enabled
Plugin not loading
Plugin not loading
- Verify plugin is enabled in .uproject
- Check that platform is Android
- Look for errors in LogLCKOboe
Stream creation failure
Stream creation failure
- Check that
RECORD_AUDIOpermission is granted at runtime (not just manifest) - Verify no other Oboe streams are active
- Check Android logcat for Oboe/AAudio errors
Log Category
See Also
Audio Overview
Audio system architecture
Unreal Audio
Cross-platform audio capture