Skip to content

Bluetooth output stream cannot open in Exclusive / Low Latency (negotiated as Shared / PerfMode None) #2350

@greenthings

Description

@greenthings

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions