Тема: Разработка программной библиотеки для организации работы со звуком в ОС Android в условиях низкой производительности устройства
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
1. Обзор и постановка задач. 7
1.1 Обзор и анализ существующих методов воспроизведения аудио
файлов в ОС Андроид. 7
1.2 Описание создаваемого продукта. Постановка задач. 10
2. Архитектура библиотеки. 12
2.1. Проектирование архитектуры библиотеки. 12
2.2. Блок управления воспроизведением. 14
2.3. Блок низкоуровневого управления. 16
2.4. Блок взаимодействия с пользователем. 17
2.5. Вспомогательный блок. 19
3. Реализация библиотеки. 20
3.1. Выбор технологий. 20
3.2. Реализация функционала стримминга. 22
3.3. Реализация алгоритма кэширования музыки. 25
3.4. Создание механизма бесшовного воспроизведения треков. 27
3.5. Сборка библиотеки. 2 8
3.6. Создание виджетов. 28
3.7. Реализация механизма считывания метаданных. 31
3.8. Механизмы визуализации данных. 3 2
4. Анализ полученных результатов. 35
4.1. Воспроизведение. 35
4.2. Приложения, использующие StreamPlayer. 40
Заключение.
Список использованных источников
📖 Введение
Крупные компании пишут собственные библиотеки по воспроизведению аудио данных, на что уходит достаточно много времени и денег, так как для качественного воспроизведения необходимо писать код на C (или С++) и Java одновременно, что требует от разработчика знания нескольких языков программирования, а, следовательно, высокой квалификации. В небольших компаниях используются стандартные библиотеки, такие как MediaPlayer [2], ExoPlayer [3], но они обладают ограниченными возможностями, не позволяют реализовать большую часть функционала и могут не работать на некоторых устройствах. Например, MediaPlayer не работает на Lg g3 при кросс доменных ссылках на треки [2], ExoPlayer не поддерживается на старых версиях операционной системы [3], и на некоторых музыкальных форматах есть проблемы с перемоткой и правильным определением времени песен.
На данный момент нет библиотеки для Android, которая:
• позволила бы кэшировать музыку прямо во время стримминга (непрерывное получение и проигрывание аудио данных по сети интернет).
• давала бы эффект бесшовного воспроизведения треков (gapless playback).
• позволила бы шифровать загруженную музыку прямо во время воспроизведения (так как в ОС Android нет скрытых папок, а правообладателям музыки, как правило, нужна защита от не легального прослушивания).
• обладала бы минимальным эффектом задержки перед началом стримминга.
• позволяла синхронизировать музыку с другими Андроид устройствами (Android TV, Android Watch).
• считывала и записывала метаданные песни.
• накладывала различные эффекты на треки.
• обладала бы способностью визуализации музыки [4].
Разработчикам приходится реализовывать данные функции самостоятельно, что занимает достаточно много времени и приводит к большому количеству ошибок. Данный процесс усложняется еще и тем, что требуется писать отдельную логику воспроизведения для телефонов со старой версией операционной системы.
Поэтому существует необходимость в разработке общего музыкального фреймворка, где будет реализован весь необходимый функционал для Android разработчиков.
Целью данной дипломной работы является разработка библиотеки для воспроизведения звуковых файлов для ОС Android, которая будет работать на всех устройствах вне зависимости от производительности устройства и скорости интернета.
Для достижения данной цели были поставлены следующие задачи:
• описать основные требования к библиотеке
• разработать архитектуру библиотеки
• написать программный продукт
• протестировать библиотеку
• выложить библиотеку в открытый доступ, для дальнейшего использования библиотеки другими программистами.
Таким образом, объектом исследования является воспроизведение аудио-файлов.
Предмет исследования - изучение основных принципов разработки музыкальных продуктов для ОС Android, изучение принципов воспроизведения звуковых данных.
✅ Заключение
Библиотека предоставляет следующий функционал:
• Стримминг музыки.
• Воспроизведение локальных аудиозаписей.
• Загрузка звуковых файлов по сети интернет.
• Кэширование данных.
• Бесшовное воспроизведение аудиозаписей.
• Управление настройками проигрывания.
• Эквалайзер.
• Визуализация данных.
• Функционал, отвечающий за оптимизацию приложения при низкой производительности телефонов.
• Редактирование и считывание метаданных песни.
Библиотека может использоваться в таких приложениях, как: интернет-радио, приложения по стриммингу музыки, любые виды плееров, приложения по анализу и редактированию метаданных песен.
В дальнейшем планируется провести оптимизацию библиотеки при стримминге, в частности получать метаданные песни прямо во время загрузки. Так же планируется уменьшить размеры библиотеки, так как из-за использования библиотеки FFmpeg приложение в некоторых случаях может увеличиваться на 15 - 20 Мб.
На данный момент библиотека используется в нескольких крупных приложениях : MusicSense [21], Musix [22], Sok.fm, Beeline Volna [23]. Планируется так же разработка других приложений с использованием библиотеки StreamPlayer. Библиотека находится в открытом доступе [24].



