Sto cercando di realizzare un semplice comportamento simile a un doodle, in cui un suono mp3/ogg suona al clic, utilizzando il tag html. Dovrebbe funzionare sotto Firefox, Safari e Safari. L'iPad è veramente desiderabile.HTML5 Il tag audio su Safari ha un ritardo
Ho provato molti approcci e sono giunti fino a questo:
HTML
<span id="play-blue-note" class="play blue" ></span>
<span id="play-green-note" class="play green" ></span>
<audio id="blue-note" style="display:none" controls preload="auto" autobuffer>
<source src="blue.mp3" />
<source src="blue.ogg" />
<!-- now include flash fall back -->
</audio>
<audio id="green-note" style="display:none" controls preload="auto" autobuffer>
<source src="green.mp3" />
<source src="green.ogg" />
</audio>
JS
function addSource(elem, path) {
$('<source>').attr('src', path).appendTo(elem);
}
$(document).ready(function() {
$('body').delegate('.play', 'click touchstart', function() {
var clicked = $(this).attr('id').split('-')[1];
$('#' + clicked + '-note').get(0).play();
});
});
Si può effettivamente vedere l'intera demo ign .com.uy/loog/
Sembra funzionare molto bene con Firefox ma Safari sembra avere un ritardo ogni volta che si fa clic, anche quando si fa clic diverse volte e il file audio è stato caricato. Su Safari su iPad si comporta in modo quasi imprevedibile.
Inoltre, le prestazioni di Safari sembrano migliorare quando eseguo il test localmente, suppongo che Safari stia scaricando il file ogni volta. È possibile? Come posso evitare questo? Grazie!
Ehi, qualche input sul problema di Safari? : S – Nacho
Le risposte correnti sono corrette e, in base alla loro disposizione, interamente in linea con [questa risposta precedente] (http://stackoverflow.com/a/7972609/517815) su un thread simile. La soluzione più efficace, come citato dall'autore e in [questa risposta in questo thread] (http: // StackOverflow.it/a/9960247/517815), è in effetti quello di distruggere tutti i tuoi comportamenti in un singolo file e chiamarli in frame diversi. È un sacco di lavoro extra, ma questo è ciò che accade quando Apple prende una decisione di progettazione con la quale tutti gli altri sono obbligati a conformarsi. (Fammi sapere se preferisci questa risposta.) – MrGomez
@ign sei riuscito a riprodurre più audio contemporaneamente su Safari desktop? Sfortunatamente ho riscontrato un ritardo con il desktop Safari. FF e Chrome funzionano bene. – trainoasis