У меня была такая же проблема ... желание контролировать воспроизведение звука с самого начала.
Мое решение состояло в том, чтобы поместить аудио-теги в скрытый DIV-файл, какthis.
<div id="junk" style="display: none">
<audio id="effect1" src="..." autobuffer="autobuffer" controls="" ></audio>
<audio id="effect2" src="..." autobuffer="autobuffer" controls="" ></audio>
<audio id="effect3" src="..." autobuffer="autobuffer" controls="" ></audio>
</div>
Тогда в моем javascript есть код, подобный этому, в процедуре воспроизведения.
function playEffect(x) {
var a = document.getElementById('effect' + x);
if (a && a instanceof Audio) {
if (a.currentTime) { a.currentTime = 0; }
a.play();
}
}
Итак ... вы следуете правилам, потому что "требуемый" элемент управления UIтам, но, конечно, это не мешает веб-странице.Проверка currentTime в функции playEffect «перематывает» звук ... если вы этого не сделаете, он не будет воспроизводиться второй раз.
Это сработало для меня на iPad и iPhone, а такжеSafari на моем Mac.Я не проверял IE на соответствие.Моя страница была интегрирована с Google Maps API v3.