Sto lavorando con audio HTML5. Per il mio caso d'uso, ho bisogno di ascoltare la durata audio riprodotta e una volta superata una certa soglia, mettere in pausa l'audio. Quindi, qualcosa di simile a:Html5 Precisione data/ora audio
$(audio).bind('timeupdate', function() {
if (audio.currentTime >= 10){
audio.pause();
}
});
Quello che sto notando è che per il momento il mio gestore viene eseguito, audio.currentTime
è intorno 10.12878
, 10.34023
ecc e, di conseguenza, qualche piccolo extra audio viene riprodotto prima di essere messo in pausa.
Un altro question sembra aver documentato lo stesso problema. La domanda è datata nel 2012, quindi mi chiedo se lo stato dell'arte è migliorato.
In caso contrario, quali altri modi esistono per eseguire questa operazione con maggiore precisione? Non ho mai lavorato con l'audio molto prima e apprezzerei davvero l'aiuto.
No, l'API audio HTML5 AFAIK non è migliorata in quell'area, infatti JavaScript nella sua interezza è ancora privo di tempistiche precise. D'altra parte, l'audio Web è un'eccezione. In effetti, dai un'occhiata al mio [post] (http://stackoverflow.com/a/35918492/2813224) – zer00ne
È necessario sospendere l'audio esattamente a 10.0? Perché usare l'operatore '> ='? – guest271314
Data la difficoltà di inchiodare la precisione all'esatto 10.0, un tentativo pratico che potresti tentare di provare è usare audio.currentTime> 9.750 (strict greater than) Questo ti dà un ammortamento di 0.250 prima che venga raggiunto il 10.0. –