capturePriority
Leave the default unless the product needs a sharp webcam feed.
qualityChoice
Profiles
Ladder (high → low):
prime → pro → lite → ultralite → basic.
FPS floors
- Warm-up estimate — zeros bench before
getUserMedia; may pick a lower profile (warmup_estimate). - Live auto-downgrade — median inference ms stays too high → drop one tier (
low_fps), emitquality_changed. - performance_warning — still below floor on
basic→device_too_slow(throttled).
qualityChoice sets the start tier; capturePriority: 'quality' only disables automatic FPS-driven drops.
Crash-loop guard
Per(sdkVersion, profile): PROBING → PASSED or FAILED if the previous run died while probing. Failed tiers walk down the ladder. Persists when @react-native-async-storage/async-storage is installed (optional, recommended).
Host listeners
Recommendations
- Keep
qualityChoice: 'AdaptiveChoice'andcapturePriority: 'performance'. - Handle
onPerformanceWarningin your own UX / analytics (localize before end users). - Do not force
primeon mid-range Android in production. - Install AsyncStorage so the crash-guard persists.
Related
- Events —
quality_changed,performance_warning - Provider options