OboeTester: handle rerouting in the Error Callback test Starting from Android 17, a stream on the legacy path may be rerouted instead of disconnected when a headset is plugged or unplugged. In that case the error callback never fires and the Error Callback test in OboeTester never reports PASS. Register a routing callback (when the platform supports it) and run the same "delete the callback while it is in use" experiment from onRoutingChanged(). A routing callback that merely reports the initial devices is ignored so the test still requires a real plug/unplug event. cleanup() is serialized with a mutex because both the error callback and the routing callback may fire for the same event on MMAP streams. Unexpected (non-disconnect) errors are now reported through a separate getCallbackError() so the UI can show a clear failure message instead of a bogus magic value. Library changes: - Add virtual destructor to AudioStreamRoutingCallback. - Add OboeExtensions::isRoutingChangedCallbackSupported(). Bug: 560318727
Oboe is a C++ library which makes it easy to build high-performance audio apps on Android. It was created primarily to allow developers to target a simplified API that works across multiple API levels back to API level 16 (Jelly Bean).
We would love to receive your pull requests. Before we can though, please read the contributing guidelines.
View the releases page.