Информация о имеющемся приложении:

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

Задача:

1. Сделать чтобы стартовый сплешскрин имел черный фон с заданной картинкой (сейчас задана картинка, но фон белый).

2. Сделать чтобы все активити и вебвью были растянуты на весь экран (включая верхний прогрессбар, который нужно сделать прозрачным), при загрузке приложения в GET запросе к стартовому URL передавалать высоту верхнего прогрессбара в пикселях (например "/?androidheight=20"). Это нужно для того, чтобы фон вебстраниц лежал под прогрессбаром, а не прогрессбар был фиксированного цвета.

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

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

4. Сделать возможность вызова внутренней функций проигрывания музыки (онлайн радио стрим) в приложении из Javascript выполняемого в вебвью.

Логика вызова следующая:

а. Вебстраница вызывает функцию нативного плеера, передавая ей параметры - массив URL на аудио потоки, массив URL на получение информации об играемом треке (название, описание, обложка).

б. Вебстраница вызывает функцию проверки статуса проигрывания - приложение возвращает в webview (например путем вызова какой то функции расположенной в JS файле внутри вебвью) свой текущий статус проигрывания (подключается к удаленному стриму, играет или остановлено).

в. Когда экран заблокирован - на экране блокировки показан стандартный поп-ап нативного плеера с информацией о треке и кнопки переключения вперед-назад, в случае использование кнопок переключения приложение переключает следующий-предыдущий стрим из массива URL аудиопотоков, которые мы передали из webview при вызове первоначальной функции нативного плеера.

5. Проверить чтобы API Level приложения соответствовал актуальному принимаемому в Playmarket для постинга, добавить в манифест все необходимые параметры для воспроизведения потоковой музыки, но в то же время чтобы приложение было доступно и для более ранних версий Android (чтобы функция проигрывания музыки в нативном плеере работала).

Предлагаемое API для функции вызова нативного плеера:

1. Вызов функции показа нативного плеера из webview:

{"URL":"https://clubvid.xyz/level1","AUDIOINFO":"https://luxuryloungeradio.com/?trackinfo_channel=1","CHANNELID":"1","INTERVAL":"5"},{"URL":"https://clubvid.xyz/level2","AUDIOINFO":"https://luxuryloungeradio.com/?trackinfo_channel=2","CHANNELID":"2","INTERVAL":"5"},{"URL":"https://clubvid.xyz/level3","AUDIOINFO":"https://luxuryloungeradio.com/?trackinfo_channel=3","CHANNELID":"3","INTERVAL":"5"}

URL - URL адрес радио потока (MP3 стрим)

AUDIOINFO - URL адрес где приложение должно запрашивать и получать данные о проигрываемом треке с заданной регулярностью INTERVAL секунд

CHANNELID - идентификатор канала

2. Ответ от удаленного сервера на запрос информации о проигрываемом треке:

{"TITLE":"Title","DESCRIPTION":"Artist name","ARTWORK":"https://luxuryloungeradio.com/covers/2222.jpg"}

TITLE - Название трека

DESCRIPTION - описание (артист, альбом)

ARTWORK - обложка в JPG

3. Вызов функции получения статуса проигрывания в нативном плеере из webview:

nativeplay("STATUS")

ответ от приложения (например вызовом заданной функции jsrespond в JS файле находящемся на вебстранице внутри webview):

jsrespond("CONNECTING","1") , где первый параметр это статус проигрывания (нужно будет перечислить все возможные статусы), второй параметр это CHANNELID проигрываемого потока (из переданных в самом начале)

4. Вызов функции остановки проигрывания из webview:

nativeplay("STOP")

ответ от приложения:

jsrespond("STOPPED","1"), где второй параметр это CHANNELID проигрываемого потока

В случае остановки проигрывания не из вебвью (например с поп-апа на заблокированном экране), приложение должно также вызвать эту функции в webview.

5. Если были задействованы кнопки переключения вперед-назад из поп-апа нативного плеера на заблокированном экране:

приложение вызывает JS функцию jsrespond("CHANGECHANNEL","1") , где 1 - идентификатор текущего потока, на который было переключение из поп-апа.

2 года назад
glebden
43 года
15 лет в сервисе
Был
12 дней назад

Заявки фрилансеров

Олег
 
32 года
2 года в сервисе
Был
2 года назад
2 года назад
Илья
 
28 лет
2 года в сервисе
Был
2 года назад
2 года назад
Денис
 
35 лет
9 лет в сервисе
Был
3 часа назад
15 отзывов(-1)
2 года назад
  • Похожие заказы

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

    Закрыт
    2 года назад
  • Требуется разработать мобильное приложение, которое будет запрашивать и отображать историю транзакций для Bitcoin, Ethereum и ERC20 контрактов по заданному адресу кошелька. Реализация должна соответствовать заданной архитектуре, использовать REST API для запроса данных и базу данных Room для хранения информации. Список транзакций должен поддерживать пагинацию с учетом ограничений API на количество запросов.

    Закрыт
    2 года назад
  • Требуется разработать дизайн мобильного приложения App Locker для Android, позволяющего блокировать доступ к приложениям с помощью пароля. Ищем дизайнера с хорошим вкусом и знанием современных трендов. Будет плюсом использование ИИ Midjourney. Полное ТЗ предоставим кандидатам.

    Закрыт
    2 года назад
  • Требуется разработка приложения для iPhone на основе адаптированного сайта. Главное условие - чтобы приложение работало на iOS. Размещение в App Store не обязательно, необходимо обеспечить возможность скачивания и установки приложения по ссылке.

    Закрыт
    2 года назад
  • Необходимо разработать Telegram-бота, который будет дублировать каталог приложений с сайта odvme.com. Бот должен предоставлять пользователю информацию о приложениях, включая логотип, характеристики, а также ссылки для скачивания и промокодов. После старта бот будет запрашивать название приложения и выдавать соответствующую информацию из базы данных.

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

    Закрыт
    2 года назад
  • Требуется доработка мобильного приложения DoctorP для распознавания растений на платформе Flutter. Необходимо внести улучшения и добавить новые функции согласно приложенным требованиям.

    Завершен
    2 года назад
  • $500

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

    Закрыт
    2 года назад
  • Необхідно створити примітивний мобільний додаток для магазину спорттоварів. Додаток повинен дозволяти реєстрацію акаунтів, прив'язку системи оплати, додавання цін та описів товарів. Кількість категорій - 3-5, по 7-10 товарів на кожну категорію (тренажери, товари для бігу, плавання). Додаток повинно бути на iOS.

    Закрыт
    2 года назад