Радио в мобильном приложении.

Назад к кейсам

Радио в мобильном приложении

28 марта, 2023 7 минут

Радио в мобильном приложении.

О клиенте

«ВодоходЪ» – крупнейшая судоходная компания и туристический оператор России. С 2004 года компания «ВодоходЪ» организует круизные путешествия с посещением самых интересных городов и уголков нашей страны, а также экспедиционные круизы в труднодоступные регионы: круизы по Енисею и круглогодичный экспедиционный тур по Байкалу.

О проекте

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

Цели
  • Доступность из любой точки. Радио, в отличие от Wi-Fi-сети, не охватывает весь теплоход, из-за чего туристы могут пропустить важные объявления.

  • Увеличить аудиторию. Аналоговое радио не пользовалось популярностью, особенно у молодой аудитории.

  • Повысить вовлеченность пассажиров. Аудиогид по радио своевременно рассказывает о примечательных точках маршрута.

  • Стабильность и небольшая задержка. Обеспечить круглосуточное стабильное аудиовещание с минимальной задержкой.

Решение

На борту теплохода уже имеется микшерный пульт, к которому подключены микрофон, используемый диктором, а также плеер, с помощью которого в ночное время транслируется музыка. Проходя через микшерный пульт, сигнал попадает в радиопередатчик, который транслирует звук в громкоговорители на теплоходе и в радиоприемники в каютах.

Блок-схема

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

  • АЦП. Аналогово цифровой преобразователь. Он подключается к выходу микшерного пульта. Его задача – преобразовать аналоговый сигнал в цифровой, пригодный для обработки компьютером. В нашем случае был выбран преобразователь фирмы Dante. Он оснащен возможностью подключения к Ethernet-сети, имеет свой IP-адрес и позволяет транслировать аудио поток по сети.

  • Конвертер аудиопотока. АЦП транслирует в сеть поток в формате RTP, но воспроизводить такой аудиопоток умеют не все устройства. Необходимо преобразовать аудиопоток в другой формат, поддерживающий трансляцию аудио в реальном времени. Для этой задачи мы написали небольшую программу, которая выполняет сразу несколько задач:

    1. Считывает данные, транслируемые АЦП в сеть.
    2. Преобразует их в формат HLS, который умеет воспроизводить большинство устройств.
    3. Сохраняет аудиопоток в новом формате на жесткий диск, чтобы его можно было передавать по сети мобильному приложению в виде файлов.
    4. Удаляет старые фрагменты аудиопотока, чтобы они не занимали место на жестком диске.
    5. Мониторинг работы, статуса, сбор ошибок, логов.
  • Панель администратора. Она необходима для конфигурирования конвертера аудиопотока, а также для проверки текущего статуса, просмотра списка ошибок.


После того, как была закончена работа по исследованию, реализации и настройке перечисленных узлов, мы приступили к тому, ради чего всё и затевалось — интеграции радио в мобильное приложение. Поскольку мы изначально выбрали подходящий формат, нам удалось избежать проблем с внедрением функционала в приложение. Теперь новый раздел с радио позволяет пассажирам быть в курсе последних новостей, узнавать о погодных условиях и прочих событиях во время их путешествия.

Мобильное приложение «ВодоходЪ», радио.
Вызовы
  • Поиск оборудования. Первоочередная и самая непростая задача — найти оборудование, которое позволяет не только оцифровывать аналоговый сигнал с микшерного пульта, но и транслировать его в сеть. Из других важных факторов необходимо было учитывать портативность — никому не будет удобно иметь дело с набором устройств, которые соединены большим количеством проводов и с трудом поддаются перемещению в другое место; стоимость — количество теплоходов уже достигает нескольких десятков и с каждым годом растет, поэтому важно было найти оборудование, не стоящее сотни тысяч рублей. Несколько дней в исследовании различных источников и предложений на рынке привели нас к единственному устройству, которое полностью отвечает всем требованиям.

  • Отказоустойчивость. Работа с оборудованием всегда не так проста, как может показаться — в любой момент один из узлов может отказать или временно быть недоступен. В случае возникновения программного или аппаратного сбоя, которые определяются без участия человека, мы предпринимаем несколько попыток перезапуска системы. В случае, если автоматические попытки восстановить работоспособность системы завершаются неудачей, мы сообщаем об этом администраторам на теплоходе. Помощь специалистов не всегда может быть доступна из-за отсутствия интернета на теплоходе при прохождении некоторых участков маршрута, поэтому, чтобы не блокировать работу во время ожидания связи, наша система самостоятельно проводит диагностику и предлагает администраторам подробную и понятную информацию, опираясь на которую можно самостоятельно исправить ошибку.

  • Контроль и гибкость. На разных теплоходах может быть установлена отличающаяся конфигурация оборудования. Так, один теплоход может иметь одноканальный конвертер, который транслирует звук в моно, другой теплоход может иметь стерео-конвертер, а на третьем может отличаться глубина звука. Разобраться в этих настройках и сконфигурировать их без специалиста было бы затруднительно, но мы решили и эту задачу, внедрив в панель администратора инструмент для удобного управления всей системой. В панели управления доступно большое количество возможностей, начиная от включения или выключения трансляции, просмотра её статуса, возникающих ошибок, заканчивая точечным конфигурированием параметров оборудования: частота дискретизации, глубина звука, количество каналов и так далее. Используя эти инструменты и имея под рукой инструкцию, администратору не составит труда самостоятельно настроить систему.

  • Поддержка устройствами. Конечная цель — транслировать аудио в мобильное приложение и его веб-версию. Но далеко не все форматы аудио и не все протоколы передачи данных имеют широко распространенную поддержку. Особенно это касается конечных устройств пользователей: смартфоны и ноутбуки. Также сильно варьируется поддержка в зависимости от используемого браузера и версии операционной системы. Чтобы решить эту задачу, мы рассматривали несколько популярных технологий, но остановились на HTTP Live Streaming (HLS), которая обеспечивает поддержку большого количества устройств, относительно проста в понимании и применении.

Цифры
  • 24/7 Бесперебойная работа радио
  • 2 сек Средняя задержка до мобильного приложения
  • > 150 Слушателей на одном теплоходе одновременно

Технологии

  • PHP
  • Node.js
  • Flutter
  • Dart
  • REST API
  • RTP
  • HLS
  • Dante
  • Hardware

Сотрудничество

2020 – ∞