Ответ 1
Несколько вещей... ваш script сначала должен быть после звукового тега.
Также вам не нужен атрибут oncanplaythough
в теге аудио, так как вы используете JavaScript для этого.
Кроме того, oncanplaythrough
является событием, а не методом. Добавьте к нему слушателя, который вместо этого будет использовать canplaythough
. Взгляните на это:
<audio id="audio2"
preload="auto"
src="http://upload.wikimedia.org/wikipedia/commons/a/a9/Tromboon-sample.ogg" >
<p>Your browser does not support the audio element</p>
</audio>
<script>
myAudio=document.getElementById('audio2');
myAudio.addEventListener('canplaythrough', function() {
this.currentTime = 12;
this.play();
});
</script>
И, наконец, чтобы начать песню в определенную точку, просто установите currentTime
, прежде чем вы начнете воспроизведение файла. Здесь у меня он установлен на 12 секунд, поэтому в этом примере он будет слышен, в течение 3:26 вы будете использовать 206 (секунд).
Посмотрите демо-версию: http://jsfiddle.net/mNPCP/4/
EDIT. Похоже, что currentTime
может быть неправильно реализовано в браузерах, отличных от Firefox. Согласно разрешению этого подал ошибку W3C, когда установлен currentTime
, он должен запускать события canplay
и canplaythrough
. Это означает, что в нашем примере Firefox будет воспроизводить первую секунду или около того звуковой дорожки на неопределенный срок, никогда не продолжая воспроизведение. Я придумал это быстрое обходное решение, позвольте изменить
this.currentTime = 12;
чтобы проверить, было ли оно уже установлено, и, следовательно, чтобы canplaythrough
повторно вызывался:
if(this.currentTime < 12){this.currentTime = 12;}
Эта интерпретация спецификации по-прежнему в настоящее время оспаривается, но на данный момент эта реализация должна работать на большинстве современных браузеров с поддержкой аудио HTML5.
Обновленный jsFiddle: http://jsfiddle.net/mNPCP/5/