Есть ли способ получить информацию о ходе загрузки mp3 на ipad?

#javascript #ipad #mp3 #mediaelement #ios5

#javascript #iPad #mp3 #mediaelement #ios5

Вопрос:

Мы разрабатываем веб-приложение Javascript для Ipad, которое требует предварительной загрузки звуков перед загрузкой. Мы не знаем, какие звуки нужны пользователю, пока он не нажмет на упражнение, а затем ему нужно предварительно загрузить несколько звуков перед началом упражнения.

Я знаю, что метода предварительной загрузки не существует, и что загрузка должна быть привязана к событию прямого нажатия / нажатия. Мы потратили значительное количество времени, пробуя множество комбинаций динамического добавления мультимедийных элементов при каждом нажатии (загружаемых с фиктивными звуками), а затем пытаясь поменять их местами с mp3, которые нам нужны в данный момент.

Мы отказались от этого подхода и подумали, что можем просто объединить звуки в один файл и переместить головку воспроизведения в нужные диапазоны (содержащиеся в файле JSON). Мы успешно запустили эту функцию на рабочем столе, но мы не можем сделать это на Ipad, потому что мы не знаем, когда звук будет полностью загружен.

Даже после того, как пользователь инициирует воспроизведение звука, на устройстве нет способа проверить, когда звук полностью загружен. Фактически, он не загружает весь файл, если он не воспроизводится. Мы обнаружили, что мы не можем последовательно получать длительность, если начало воспроизведения не достигло конца линейным образом. Мы попытались проверить свойства buffered.start() и buffered.end() на соответствие нашей собственной продолжительности (у нас есть файл JSON со всеми временами), но как только мы попытаемся установить audioElement.currentTime и StopTime, он просто воспроизводит весь звук от начала до конца.

Мы обнаружили, что свойство seekable также ненадежно.

Сейчас мы работаем с ios5, и я считаю, что более старые версии работают по-другому в отношении свойства duration.

Кто-нибудь смог заставить это работать?