предварительно загрузить аудио html5 во время воспроизведения - PullRequest
2 голосов
/ 09 ноября 2010

Для HTML5 Audio, скажем, у вас есть список из двух песен, которые вы хотите воспроизвести. В настоящее время он настроен таким образом, что, когда текущая песня перестает воспроизводиться, она загружает новую песню и воспроизводит ее. Я хочу, чтобы он загружал следующую песню, когда текущая песня заканчивается, возможно, за 20 секунд до ее окончания. Я попытался изменить атрибут src для аудиообъекта во время воспроизведения песни, но это просто немедленно останавливает воспроизведение текущей песни. Есть ли другой метод, который позволяет мне предварительно загружать следующую песню во время воспроизведения текущей песни?

Ответы [ 2 ]

3 голосов
/ 10 ноября 2010

Вы можете использовать jQuery для создания объекта jQuery:

var nextSong = document.createElement('audio'); //Creates <audio></audio>
nextSong = $(nextSong); //Converts it to a jQuery object
$(nextSong).attr('autoplay') = false; //You don't want this dynamically loaded audio to start playing automatically
$(nextSong).attr('preload') = "auto"; //Make sure it starts loading the file
$(nextSong).attr('src') = url_to_src; //Loads the src

Это должно начать загрузку песни в элемент памяти браузера, а когда песня закончилась, вызвать что-то вроде:

$(audio).replace(nextSong);

Это не проверено. Вы, вероятно, даже не нуждаетесь в jQuery.

Это может работать без jQuery:

var nextSong = document.createElement('audio');
nextSong.autoplay = 'false';
nextSong.preload = 'auto';
nextSong.src = url_to_src;

Повернись и дай мне знать!

1 голос
/ 10 ноября 2010

Возможно, это неправильно, но вы пытались вызвать метод load () элемента?

http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#loading-the-media-resource

Edit:

Ах, думаю, я неправильно понял проблему. Вы хотите сыграть две песни подряд в одном медиаэлементе? Я не уверен, насколько это возможно ... может быть проще поместить каждую песню в отдельный элемент Audio. Вы всегда можете генерировать их динамически, если вы беспокоитесь о гибкости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...