EnregistreurAudio.kt 19 lignes · 790 octets
package fr.ebii.card2vcf.audio

import java.io.File

/**
 * Contrat de capture audio utilisé par l'UI.
 *
 * [AudioNoteRecorder] en est l'implémentation réelle (AudioRecord). L'interface existe
 * pour que la feuille d'enregistrement reste pilotable en test : `AudioRecord` n'a aucun
 * matériel derrière lui sous Robolectric, si bien qu'un test de rendu attendrait
 * indéfiniment la fin d'un enregistrement qui n'a jamais démarré.
 */
interface EnregistreurAudio {
    /** Lance l'enregistrement vers [fichierCible] ; [onPcm] reçoit les échantillons lus. */
    fun demarrer(fichierCible: File, onPcm: (ShortArray, Int) -> Unit)

    /** Stoppe l'enregistrement et retourne le fichier produit, ou `null` si rien n'a été capté. */
    fun arreter(): ResultatEnregistrement?
}