When a Bluetooth device is connected, the output stream requests Exclusive sharing mode and Low Latency performance mode, but the actual open result is negotiated as Shared sharing mode and PerformanceMode::None.
Is there any way to ensure Exclusive / Low Latency output when using Bluetooth devices?
Should this be handled with specific code, or does it depend on special hardware or products?
Environment
Device: (ex. Samsung Galaxy S24)
Android version: (ex. Android 16)
Oboe version: (ex. 1.8.0)
Audio API: AAudio
Bluetooth device: (ex. EPOS headset) -> aptX
Code snippet
oboe::AudioStreamBuilder builder;
builder.setAudioApi(oboe::AudioApi::AAudio)
.setSharingMode(oboe::SharingMode::Exclusive)
.setPerformanceMode(oboe::PerformanceMode::LowLatency)
.setFormat(oboe::AudioFormat::Float)
.setChannelCount(2)
.setSampleRate(48000)
.setFramesPerCallback(mPerFrame);
builder.openStream(&stream);
Observed result
The stream always opens with:
SharingMode: Shared
PerformanceMode: None
Expected behavior
The stream should open with:
SharingMode: Exclusive
PerformanceMode: LowLatency
When a Bluetooth device is connected, the output stream requests Exclusive sharing mode and Low Latency performance mode, but the actual open result is negotiated as Shared sharing mode and PerformanceMode::None.
Is there any way to ensure Exclusive / Low Latency output when using Bluetooth devices?
Should this be handled with specific code, or does it depend on special hardware or products?
Environment
Device: (ex. Samsung Galaxy S24)
Android version: (ex. Android 16)
Oboe version: (ex. 1.8.0)
Audio API: AAudio
Bluetooth device: (ex. EPOS headset) -> aptX
Code snippet
Observed result
The stream always opens with:
SharingMode: Shared
PerformanceMode: None
Expected behavior
The stream should open with:
SharingMode: Exclusive
PerformanceMode: LowLatency