Skip to main content

android-audio-e2e

Build and run device-backed Android end-to-end checks for react-native-nitro-sound permissions, recording, playback, listeners, pause/resume, seek, speed, audio focus, lifecycle behavior, and rapid switching. Use for Kotlin or Android regressions and runtime claims beyond a Gradle compile.

Informations de source

Dépôt
hyochan/react-native-nitro-sound
Dernière activité de la source
7 août 2026 à 02:03
Langue détectée de SKILL.md
anglais
Étoiles
961
Forks
252

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Explorateur de fichiers
2 fichiers

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
android-audio-e2e
description
Build and run device-backed Android end-to-end checks for react-native-nitro-sound permissions, recording, playback, listeners, pause/resume, seek, speed, audio focus, lifecycle behavior, and rapid switching. Use for Kotlin or Android regressions and runtime claims beyond a Gradle compile.
# Android Audio E2E Keep compilation, installation, and live audio verification as separate result lanes. ## Safety And Scope - Obtain explicit approval in the current run before starting live microphone capture. State that the example package `sound.example` will record a short test clip. - Use non-sensitive audio. Do not upload, transcribe, or retain recordings beyond the verification need. - Preserve existing ADB reverse rules, permissions, accounts, and device files. - Test background recording, phone/audio-focus interruption, Bluetooth routing, or process death only when requested or required by the change. ## Preflight 1. Read `AGENTS.md`, `.github/workflows/ci-android.yml`, the changed Kotlin/spec/TS files, and the relevant example screen. 2. Record `git status --short --branch` and `adb devices -l`. 3. Confirm JDK 17, the Android SDK, and a single intended emulator or device. 4. Verify `RECORD_AUDIO` appears in the example manifest and identify the current permission state without changing it. 5. Run `yarn install --immutable` and `yarn nitrogen` when generated Android bindings are involved. ## Build Lane Mirror the CI build: ```bash yarn turbo run build:android --cache-dir=.turbo/android ``` If diagnosing Gradle directly, run the corresponding example task with `--no-daemon --console=plain` and record the exact task and architecture. Report `BUILD PASS` or `BUILD FAIL` independently. ## Device Runtime Lane After microphone approval: 1. Install and launch `sound.example` on the selected device. 2. Grant microphone permission through Android's system UI; verify denial and retry behavior when permission handling is the target. 3. Start recording; require a resolved path, active state, and increasing millisecond callbacks. 4. Pause and resume; require time to pause and continue without duplicate recorder instances or promise settlement. 5. Stop; require terminal state, listener cleanup, and a non-empty app-owned recording. 6. Play the file; require increasing position, sensible duration, seek, volume, speed, and one playback-end transition as applicable. 7. Run Rapid Switch and Stress Test for MediaPlayer state or concurrency fixes. 8. Inspect filtered `adb logcat` for uncaught exceptions, rejected promises, media-state errors, and leaked recorder/player resources. When lifecycle, audio focus, or background behavior is in scope, explicitly exercise Home/Recent Apps, focus loss/gain, and relaunch. Do not claim process death or background support unless the exact transition was observed. ## Evidence And Cleanup Record the device serial, API level, ABI, build variant, permission state, tested API/screen, callback progression, returned path metadata, and redacted logs. Delete only recordings or temporary files created by the run. Report `RUNTIME PASS`, `RUNTIME FAIL`, or `BLOCKED` separately and list untested rows.
Voir sur GitHub