Minimal reproducible example
https://github.com/shreyas710/expo-audio-test
Steps to reproduce
I’m using expo-audio to play a short chime right before recording starts. I’d like to minimize the gap between when the chime starts and when the recorder actually captures audio, but I’m running into limitations with the approaches I tried.
What I want: Play a brief “chime” sound using audio player, then start the recorder with as little delay as possible and clean, normal-quality capture.
What actually worked for latency: Not playing the chime at all — starting the recorder alone avoids the problem but loses the UX.
AudioContext.tsx - include all functions for playing and recording
RecordAndPlay.tsx - component that uses those functions
Environment
expo-env-info 2.0.12 environment info:
System:
OS: macOS 26.4.1
Shell: 5.9 - /bin/zsh
Binaries:
Node: 20.19.5 - ~/.nvm/versions/node/v20.19.5/bin/node
Yarn: 1.22.22 - /opt/homebrew/bin/yarn
npm: 10.8.2 - ~/.nvm/versions/node/v20.19.5/bin/npm
Watchman: 2026.03.30.00 - /opt/homebrew/bin/watchman
Managers:
CocoaPods: 1.16.2 - /opt/homebrew/bin/pod
SDKs:
iOS SDK:
Platforms: DriverKit 25.4, iOS 26.4, macOS 26.4, tvOS 26.4, visionOS 26.4, watchOS 26.4
Android SDK:
API Levels: 30, 31, 33, 34, 35, 36
Build Tools: 30.0.0, 33.0.1, 34.0.0, 35.0.0, 36.0.0
System Images: android-30 | Google APIs ARM 64 v8a, android-33 | Google Play ARM 64 v8a, android-34-ext8 | Google Play ARM 64 v8a, android-34 | Google APIs ARM 64 v8a, android-34 | Google Play ARM 64 v8a, android-35 | Google Play Tablet ARM 64 v8a, android-36.1 | Google APIs ARM 64 v8a, android-36.1 | Google Play ARM 64 v8a, android-36.1 | Pre-Release 16 KB Page Size Google Play ARM 64 v8a, android-36 | Google APIs ARM 64 v8a, android-36 | Google Play ARM 64 v8a, android-36 | Pre-Release 16 KB Page Size Google Play ARM 64 v8a
IDEs:
Android Studio: 2025.1 AI-251.26094.121.2513.14007798
Xcode: 26.4.1/17E202 - /usr/bin/xcodebuild
npmPackages:
expo: ~54.0.33 => 54.0.33
react: 19.1.0 => 19.1.0
react-native: 0.81.5 => 0.81.5
npmGlobalPackages:
eas-cli: 16.23.1
Expo Workflow: bare
Expo Doctor Diagnostics
17/17 checks passed. No issues detected!
Minimal reproducible example
https://github.com/shreyas710/expo-audio-test
Steps to reproduce
I’m using expo-audio to play a short chime right before recording starts. I’d like to minimize the gap between when the chime starts and when the recorder actually captures audio, but I’m running into limitations with the approaches I tried.
What I want: Play a brief “chime” sound using audio player, then start the recorder with as little delay as possible and clean, normal-quality capture.
What actually worked for latency: Not playing the chime at all — starting the recorder alone avoids the problem but loses the UX.
AudioContext.tsx - include all functions for playing and recording
RecordAndPlay.tsx - component that uses those functions
Environment
Expo Doctor Diagnostics