Как стать автором
Обновить

Проигрывание аудио файлов с веб сайта в фоновом режиме на мобильных OS (Android, iOS)

Время на прочтение3 мин
Количество просмотров33K
Я администрирую сайт, в котором публикую аудио записи различных мероприятий. Обычно это 10-20 mp3 файлов.
У пользователей есть выбор — прослушать аудио прямо с сайта с помощью Flash плеера, или скачать архив к себе на компьютер.

Проблема в том, что ни один их этих способов не работает, если открывать сайт в браузере на Android: Flash или не работает вовсе (на более старых телефонах) или останавливает воспроизведение, как только открывается другое приложение, или даже новое окно в браузере. А загружать архив на телефон, распаковывать, а потом запускать плеер — слишком много геморроя.

Можно было бы использовать HTML5 с новым тэгом AUDIO. Но во первых, этот тэг не поддерживается на Android версии 2.2 или ниже, о чем есть bug в их трэкере. Во вторых, в тех версиях, где поддерживается — работает нестабильно: я пробовал запустить jPlayer, и на моём Android их демо так и не запустилось. И в третьих, есть та же проблема, что и с Flash — как только переходите на другую страницу или приложение — аудио останавливается.

Так как же запустить проигрывание нескольких mp3 файлов в фоновом режиме?

Я это сделал с помощью m3u списков. Впрочем не обошлось без костылей… Но обо всём по порядку.

Что такое m3u список (playlist)


Согласно Wiki, в самом простом варианте m3u файл — это обычный текстовый файл, в котором содержится список аудио файлов. Список может указывать на локальные файлы (абсолютный или относительный путь), или URL ссылки. Для нас интересен вариант c URL ссылками.

В расширенном варианте, можно указывать дополнительную информацию, такую как, длительность трэка, название трэка и название альбома.

Если использовать русские буквы в названиях, то файл должен быть в кодировке utf8 и иметь расширение m3u8.

Поддержка m3u на Android


Android поддерживает m3u криво. По умолчанию для них используется приложение «Music», которое идёт с Android. Там m3u вроде как поддерживается, но если в списке — URL ссылки, то такой список не открывается, а выскакивает ошибка «Sorry, the player does not support this type of audio file». Об этом тоже есть баг. Висит он уже давно, так что если вы пройдёте по ссылке на баг, и кликнете на звёздочку, то ваш голос будет засчитан, как выражение воли народа просьба пофиксать этот баг и может быть кто-то обратит на это внимание.

Решается проблема путём установки дополнительного приложения. Я поискал на маркете, и нашёл только одно приложение, которое нормально открывает m3u списки с URL ссылками. Это бесплатное приложение Just Playlists.

Формат m3u8 не поддерживается Android'ом (то есть тем плеером, который по умолчанию включен в систему), и я не нашёл ни одного приложения с поддержкой этого формата.

Как это всё работает


— На сайте необходимо попросить пользователя установить себе Just Playlists. Когда в Android вышеназванный баг будет пофиксан, то этот шаг будет не нужным.
— Генерируем m3u список с URL ссылками на наши MP3 файлы, делаем обычный линк на этот m3u файл на нашем веб сайте. Для генерации m3u я использую VLC Player, хотя можно и обычный Windows Media Player. VLC умеет правильно прописывать длину трэков. Они позволяют сохранить список файлов, с локальными файловыми ссылками. Потом в Notepad я делаю «Replace» локального пути на URL.
— Пользователь кликает на ссылке, которая указывает на m3u файл. Android запускает плеер (в нашем случае Just Playlists), который в фоновом режиме играет все трэки из m3u списка.

iOS


Поддержка m3u вроде была обещана на iOS. К сожалению у меня нет ни iPhone, ни iPad, поэтому я провёл несколько быстрых экпериментов по открыванию m3u линков на чужом iPad'е и выяснил, что всё работает, но тоже криво:
— m3u линки открываются, и запускается приложение iOS, которое начинает проигрывать файлы из m3u плэйлиста в фоновом режиме, но:
— Отсутствует возможность навигации по списку трэков, то есть нельзя перейти на следующий / предыдущий трэк, или перемотать вперёд / назад;
— Быстрый поиск по существующим приложениям в App Store не обнаружил бесплатных приложений, которые как-то улучшили бы этот функционал;

Заключение


Согласен, что предложенное решение не самое лучшее (требуется установка приложения на стороне пользователя).
Однако, одной из целей публикования данной статьи было осветить этот вопрос, чтобы те, кто ставит перед собой такую цель знали о существующих подводных камнях.
Теги:
Хабы:
+2
Комментарии4

Публикации

Изменить настройки темы

Истории

Работа

Ближайшие события