Withda106bd(Usage::Media + MODE_NORMAL) audio works but is always on the loudspeaker — we want handset as the default with a user-driven toggle for speaker (and later bluetooth). The right Oboe usage for a VoIP app is VoiceCommunication, which honours AudioManager.setSpeakerphoneOn / setBluetoothScoOn for routing. Bisection across previous builds showed that setAudioApi(AAudio) + Usage::VoiceCommunication made the playout callback stop draining the ring after cb#0 (build8c36fb5logs). Letting Oboe pick the AudioApi implicitly keeps the callback alive — 96be740's Media-usage callbacks fired at steady 50Hz without any explicit setAudioApi. So: keep the Usage change, DROP the explicit AAudio force. - oboe_bridge.cpp: Usage::VoiceCommunication, no setAudioApi, no ContentType override. - MainActivity.kt: setMode(MODE_IN_COMMUNICATION) + setSpeakerphoneOn(false) = handset default, plus max both STREAM_VOICE_CALL and STREAM_MUSIC volumes for belt-and-braces. Next build will add a JNI-based Tauri command to flip speakerphoneOn at runtime so the user can toggle handset↔speaker during a call.
18 KiB
18 KiB