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.

Informações da origem

Repositório
hyochan/react-native-nitro-sound
Última atividade na origem
7 de agosto de 2026 às 02:03
Idioma detectado do SKILL.md
inglês
Estrelas
961
Forks
252

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Explorador de arquivos
2 arquivos

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
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.
Ver no GitHub