Composables
useAudioRecorder
Registrazione audio dal microfono con MediaRecorder, audio solo in memoria e microfono rilasciato a fine registrazione.
Panoramica
useAudioRecorder (dalla 2.17.0) avvia e ferma una registrazione con MediaRecorder, conta i secondi trascorsi e restituisce l'audio come Blob in memoria. Non salva niente. Il microfono viene rilasciato a fine registrazione e quando lo scope del componente si chiude, anche se la registrazione è ancora in corso.
È la registrazione usata da VoiceTranscriptionBlock.
Utilizzo
<script setup lang="ts">
import { AudioRecorderError, useAudioRecorder } from '@pzeta/vue-form'
const { start, stop, isRecording, elapsedSeconds } = useAudioRecorder()
async function avvia() {
try {
await start()
} catch (err) {
if (err instanceof AudioRecorderError && err.code === 'denied') {
avviso('Consenti il microfono nelle impostazioni del browser')
}
}
}
async function ferma() {
const { audio, durationSeconds } = await stop()
await servizio.trascrivi(audio) // l'audio resta solo in questa variabile
}
</script>
API
| Membro | Tipo | Descrizione |
|---|---|---|
isRecording | Readonly<ShallowRef<boolean>> | true mentre il microfono registra |
elapsedSeconds | Readonly<ShallowRef<number>> | Secondi dall'avvio, aggiornati ogni secondo |
start() | () => Promise<void> | Chiede il microfono e avvia; lancia AudioRecorderError |
stop() | () => Promise<{ audio: Blob; durationSeconds: number }> | Ferma, restituisce l'audio e rilascia il microfono |
Errori di avvio
start() lancia AudioRecorderError, con il motivo in code:
code | Quando |
|---|---|
denied | L'utente o la policy hanno negato il microfono (NotAllowedError, SecurityError) |
notFound | Nessun microfono disponibile (NotFoundError, OverconstrainedError) |
unsupported | Il browser non ha getUserMedia o MediaRecorder |
failed | Ogni altro errore |
Composables
Composables di @pzeta/vue-form per validazione reattiva, fetch dati remoti e gestione opzioni — useValidation, useFieldValidation, useRemoteFetch, useRemoteSetup, useOptionLabel.
useFieldValidation
Composable per validazione on-blur per campo con errori tradotti — il motore di DynamicFormLayouts.