我正在嘗試使用html標記完成一個簡單的類似塗鴉的行爲,其中一個mp3/ogg聲音響起,點擊。它應該可以在Firefox,Safari和Safari iPad上運行,並且非常適合。Safari上的HTML5音頻標記有延遲
我已經試過許多方法,並已回落到這一點:
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();
});
});
實際上,你可以看到在IGN整個演示.com.uy/loog/
這似乎在Firefox下工作得很好,但Safari每當點擊時似乎都有延遲,即使點擊幾次並且音頻文件已加載。在iPad上的Safari上,它的表現幾乎不可預測。
此外,當我在本地進行測試時,Safari的性能似乎有所提高,我猜Safari每次都會下載文件。這可能嗎?我怎樣才能避免這種情況? 謝謝!
嘿,關於Safari的問題的任何輸入? :S – Nacho 2012-03-22 12:45:35
當前答案是正確的,根據他們的處置,完全符合[此前的答案](http://stackoverflow.com/a/7972609/517815)在類似的線程。最有效的解決方法,正如作者所引用的和[此線程中的此答案](http:// stackoverflow。com/a/9960247/517815),的確將您的所有行爲都打包成一個文件,並在不同的框架中調用它。這是很多額外的工作,但當蘋果做出其他人被迫遵守的設計決定時會發生什麼。 (讓我知道你是否更喜歡這個答案) – MrGomez 2012-04-02 23:35:35
@ign是否可以在桌面Safari上同時播放多個音頻?不幸的是,我遇到了桌面Safari的延遲。 FF和Chrome工作正常。 – trainoasis 2014-05-07 11:42:14