import { setAudioModeAsync, setIsAudioActiveAsync } from "expo-audio"; // Around camera/mic recording we switch the iOS audio session to playAndRecord // with `doNotMix`, which cleanly interrupts other apps' audio (Spotify, Apple // Music, podcasts). On release we restore a mixable mode and then *deactivate* // the session — the deactivation is what passes notifyOthersOnDeactivation to // AVAudioSession, which is the signal that lets the previously-playing app // auto-resume. Just changing the category is not enough. export async function acquireRecordingAudioSession() { await setAudioModeAsync({ allowsRecording: true, playsInSilentMode: true, interruptionMode: "doNotMix", }); } export async function releaseRecordingAudioSession() { await setAudioModeAsync({ allowsRecording: false, playsInSilentMode: true, interruptionMode: "mixWithOthers", }); await setIsAudioActiveAsync(false); }