Аудио событие HTML5 "прогресс" не запускается

Я создаю веб-приложение для потоковой передачи аудио / видео html5. Этот вопрос относится к звуковой части проекта, но я уверен, что столкнусь с аналогичной ситуацией, когда начну работать с видео. Моим целевым устройством является сафари-браузер iPad (поэтому я должен использовать этот html5). Воспроизведение работает нормально, но у меня есть полоса загрузки, которая должна отражать, сколько трека загружено. Следуя спецификации w3, я попытался реализовать это следующим образом с помощью jQuery:

var that = this;
that.player = $('audio')[0];

$('that.player').bind('progress',function(){
    var buffer = that.player.buffered.end(0)      
    that.updateLoadBuffer(buffer);
});

Это не сработало. 'that.player.buffered' возвращает объект TimeRanges, а TimeRanges имеет метод 'end (index)', который возвращает позицию воспроизведения конца буфера в секундах для TimeRange, указанного параметром 'index'. TimeRanges также имеет свойство .length, которое сообщает вам, сколько TimeRanges инкапсулировано объектом. Когда я попытался зарегистрировать это свойство, я обнаружил, что TimeRanges.length = 0, что означает, что TimeRanges не передаются обратно. Кроме того, когда я бросил операторы регистрации в связанную функцию, я обнаружил, что событие «прогресс» никогда не запускалось. У меня есть отдельные функции для событий loadedmetata и timeupdate, которые следуют аналогичному формату, и они запускаются, как ожидалось. Я пробовал другие методы захвата событий, но безрезультатно:

that.player.onprogress = function(e){
     console.log('progressEvent heard');
};

that.player.addEventListener('progress',progressHandler, false)
function progressHandler(e){
    console.log('progressEvent heard');
};

Ни один из них не вызвал мое консольное сообщение. Мое объявление аудио тега выглядит следующим образом:

<audio style="width:0;height:0;"></audio>

что я здесь делаю не так?

ОБНОВЛЕНИЕ: Я использую wowzamediaserver для обработки потоковой передачи http. Я не знаю, могло ли это иметь какое-то отношение к этому.

ЕЩЕ ОДИН ОБНОВЛЕНИЕ: я понимаю, что у меня нет источника в моем теге аудио, потому что я установил его динамически с помощью jquery, как показано ниже:

$('audio').attr('src','http://my.wowza.server:1935/myStreamingApp/_definst_/mp3:path/to/my/track/audio.mp3/playlist.m3u8');

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

6
задан John 31 March 2015 в 20:48
поделиться