Se integri VoiceDropper via JavaScript, ottieni un'istanza VoiceDropper che puoi controllare via codice: avviare o interrompere la riproduzione, mettere in pausa o riprendere, ricaricare l’audio, eseguire seek e aggiornare le impostazioni dell’interfaccia in tempo reale.
Creare un'istanza VoiceDropper
const target = document.querySelector('#vd-target');
const vd = new VoiceDropper(target, {
speech: '[YOUR_SPEECH_ID]'
}); Suggerimento: conserva un riferimento all’istanza (vd) così da poter richiamare i metodi in seguito, ad esempio da pulsanti personalizzati o controlli UI esterni.
Metodi di riproduzione
Alternare play / pausa / ripresa
Questo è il principale metodo “toggle” utilizzato internamente dall’interfaccia del player. Si comporta come un interruttore:
- Se il player è inattivo → avvia la riproduzione
- Se è in riproduzione → mette in pausa
- Se è in pausa → riprende
// Toggle playback
vd.playEvent(); Avviare la riproduzione
Avvia esplicitamente la riproduzione. Se l’audio non è ancora stato caricato, verrà prima recuperato e preparato.
await vd.startPlayback(); Mettere in pausa
Mette in pausa la riproduzione mantenendo la posizione corrente.
vd.pause(); Riprendere la riproduzione
Riprende la riproduzione dalla posizione corrente.
vd.resume(); Interrompere la riproduzione
Interrompe la riproduzione e riporta l’avanzamento all’inizio (00:00).
vd.stop();Metodi di ricarica
Ricaricare l’audio
Forza il player a ricaricare la risorsa audio corrente (stesso ID audio), reimpostando stato interno e interfaccia, con possibilitĂ opzionale di autoplay.
- autoplay (booleano): se
true, avvia la riproduzione dopo il ricaricamento - preload (booleano): se
true, precarica i dati audio senza avviare la riproduzione
// Reload audio and keep it ready (no autoplay)
await vd.reloadAudioOnly({ preload: true, autoplay: false });
// Reload audio and autoplay (note: autoplay behavior may vary by browser policies)
await vd.reloadAudioOnly({ preload: true, autoplay: true }); Casi d’uso comuni:
- L’audio è stato rigenerato lato server.
- Vuoi assicurarti che venga caricata la versione piĂą recente.
- Hai bisogno di un reset pulito senza ricreare l’istanza del player.
Metodi di seek
Seek in percentuale
Sposta la riproduzione a una percentuale della durata totale (0–100).
// Jump to the middle
vd.seekToPercent(50); Seek in millisecondi
Sposta la riproduzione a una posizione assoluta espressa in millisecondi.
// Jump to 30 seconds
vd.seekToGlobalMs(30000); Ottenere la posizione corrente
Restituisce la posizione corrente di riproduzione in millisecondi.
const ms = vd.getGlobalCurrentTimeMs();
console.log('Current position:', ms);Personalizzazione a runtime
Aggiornare la configurazione del player
Aggiorna le impostazioni dell’istanza durante l’esecuzione. Questo è il metodo consigliato per modificare colori del tema, etichette, icone e opzioni funzionali (mini player sticky / velocità di riproduzione) senza ricreare il player.
Firma
vd.update(nextOptions, opts); Esempio: aggiornare il tema
vd.update({
style: {
primary: '#7CD259',
background: '#0C120D',
foreground: '#FFFFFF',
'widget-btn-background': '#7CD259',
'widget-btn-foreground': '#0C120D'
}
}); Esempio: aggiornare le etichette
vd.update({
labels: {
play: 'Play',
stop: 'Stop',
resume: 'Resume',
pause: 'Pause',
speed: 'Playback speed',
close: 'Close',
init: 'Press play to listen',
loading: 'Loading speech...'
}
}); Esempio: attivare o disattivare funzionalitĂ
// Enable sticky mini player
vd.update({ stickyplayer: true });
// Enable playback speed button (auto-disabled on iOS)
vd.update({ playspeed: true }); Nella maggior parte delle integrazioni non avrai bisogno del parametro opzionale opts.
Lettura dello stato del player
Un’istanza VoiceDropper espone valori di stato utili che puoi leggere per costruire logiche UI personalizzate.
vd.isPlaying(booleano)vd.isPaused(booleano)vd.audioLoaded(booleano)vd.currentSpeed(numero: 1, 1.5, 2)vd.totalDurationMs(numero)
if (vd.isPlaying) {
console.log('Audio is playing');
}
if (vd.isPaused) {
console.log('Audio is paused');
}Callback onReady
Puoi passare una callback onReady nelle opzioni del costruttore per eseguire codice quando il player è inizializzato e pronto.
const vd = new VoiceDropper(target, {
speech: '[YOUR_SPEECH_ID]',
onReady(instance) {
console.log('VoiceDropper ready:', instance);
}
});Best practice
- Usa
playEvent()se vuoi un singolo controllo toggle, come nell’interfaccia integrata. - Usa
startPlayback()per azioni esplicite del tipo “riproduci ora”. - Usa
update()per modifiche a runtime di tema, lingua o configurazione. - Usa
seekToPercent()per controlli di avanzamento semplici eseekToGlobalMs()per uno spostamento preciso.