Тип работы:
Предмет:
Язык работы:


Разработка программной библиотеки для организации работы со звуком в ОС Android в условиях низкой производительности устройства

Работа №85543

Тип работы

Дипломные работы, ВКР

Предмет

информатика

Объем работы45
Год сдачи2016
Стоимость4750 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
29
Не подходит работа?

Узнай цену на написание


Введение. 4
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
Заключение.
Список использованных источников


Количество мобильных музыкальных приложений с каждым годом возрастает. На начало 2016 года 97% процентов пользователей Android используют медиа приложения и 88.04% аудио приложения [1]. Появляется множество музыкальных сервисов, так в этом году для ОС Андроид стали доступны сервисы Apple музыка и Яндекс. Музыка. Согласно статистике 2016 года пользователи Андроид стали проводить на много больше времени в музыкальных приложениях. Следовательно, данная область достаточно востребована, и чтобы составить конкуренцию на рынке, логика воспроизведения музыки должна работать без ошибок. А значит программистам нужны определенные инструменты, которые позволили бы разрабатывать музыкальные приложения достаточно просто и эффективно.
Крупные компании пишут собственные библиотеки по воспроизведению аудио данных, на что уходит достаточно много времени и денег, так как для качественного воспроизведения необходимо писать код на C (или С++) и Java одновременно, что требует от разработчика знания нескольких языков программирования, а, следовательно, высокой квалификации. В небольших компаниях используются стандартные библиотеки, такие как MediaPlayer [2], ExoPlayer [3], но они обладают ограниченными возможностями, не позволяют реализовать большую часть функционала и могут не работать на некоторых устройствах. Например, MediaPlayer не работает на Lg g3 при кросс доменных ссылках на треки [2], ExoPlayer не поддерживается на старых версиях операционной системы [3], и на некоторых музыкальных форматах есть проблемы с перемоткой и правильным определением времени песен.
На данный момент нет библиотеки для Android, которая:
• позволила бы кэшировать музыку прямо во время стримминга (непрерывное получение и проигрывание аудио данных по сети интернет).
• давала бы эффект бесшовного воспроизведения треков (gapless playback).
• позволила бы шифровать загруженную музыку прямо во время воспроизведения (так как в ОС Android нет скрытых папок, а правообладателям музыки, как правило, нужна защита от не легального прослушивания).
• обладала бы минимальным эффектом задержки перед началом стримминга.
• позволяла синхронизировать музыку с другими Андроид устройствами (Android TV, Android Watch).
• считывала и записывала метаданные песни.
• накладывала различные эффекты на треки.
• обладала бы способностью визуализации музыки [4].
Разработчикам приходится реализовывать данные функции самостоятельно, что занимает достаточно много времени и приводит к большому количеству ошибок. Данный процесс усложняется еще и тем, что требуется писать отдельную логику воспроизведения для телефонов со старой версией операционной системы.
Поэтому существует необходимость в разработке общего музыкального фреймворка, где будет реализован весь необходимый функционал для Android разработчиков.
Целью данной дипломной работы является разработка библиотеки для воспроизведения звуковых файлов для ОС Android, которая будет работать на всех устройствах вне зависимости от производительности устройства и скорости интернета.
Для достижения данной цели были поставлены следующие задачи:
• описать основные требования к библиотеке
• разработать архитектуру библиотеки
• написать программный продукт
• протестировать библиотеку
• выложить библиотеку в открытый доступ, для дальнейшего использования библиотеки другими программистами.
Таким образом, объектом исследования является воспроизведение аудио-файлов.
Предмет исследования - изучение основных принципов разработки музыкальных продуктов для ОС Android, изучение принципов воспроизведения звуковых данных.


Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В результате данной дипломной работы была спроектирована и разработана библиотека для организации работы со звуком в ОС Android в условиях низкой производительности устройства под названием StreamPlayer, которая сильно облегчила разработку музыкальных приложений под Андроид устройства и уже позволила сохранить затраты времени на разработку нескольких приложений. Данная библиотека предоставила дополнительный функционал, нужный для воспроизведения. Если стандартные классы Андроид позволяют декодировать музыкальные форматы только начиная с версии Андроид 4.1, то в StreamLibrary ограничений по апи нет, что значительно упрощает разработку приложений, особенно в тех проектах, где есть необходимость поддерживать старые версии телефонов.
Библиотека предоставляет следующий функционал:
• Стримминг музыки.
• Воспроизведение локальных аудиозаписей.
• Загрузка звуковых файлов по сети интернет.
• Кэширование данных.
• Бесшовное воспроизведение аудиозаписей.
• Управление настройками проигрывания.
• Эквалайзер.
• Визуализация данных.
• Функционал, отвечающий за оптимизацию приложения при низкой производительности телефонов.
• Редактирование и считывание метаданных песни.
Библиотека может использоваться в таких приложениях, как: интернет-радио, приложения по стриммингу музыки, любые виды плееров, приложения по анализу и редактированию метаданных песен.
В дальнейшем планируется провести оптимизацию библиотеки при стримминге, в частности получать метаданные песни прямо во время загрузки. Так же планируется уменьшить размеры библиотеки, так как из-за использования библиотеки FFmpeg приложение в некоторых случаях может увеличиваться на 15 - 20 Мб.
На данный момент библиотека используется в нескольких крупных приложениях : MusicSense [21], Musix [22], Sok.fm, Beeline Volna [23]. Планируется так же разработка других приложений с использованием библиотеки StreamPlayer. Библиотека находится в открытом доступе [24].



1. Leading Android app categories worldwide 2016 [Электронный ресурс] -
Режим доступа :
http://www.statista.com/statistics/200855/favourite-smartphone-app-categories -by-share-of-smartphone-users/
2. Официальная документация Андроид [Электронный ресурс]. - Режим доступа: http://www.developer.android.com
3. Официальная документация библиотеки ExoPlayer [Электронный ресурс].
- Режим доступа: http ://google. github .io/ExoPlayer/ guide .html
4. Android Open Source Project - Issue Tracker [Электронный ресурс] - Режим доступа: https://code.google.com/p/android/
5. Гонсалес, C.O MediaCodec, MediaExtractor, MediaFormat и AudioTrack в помощь [Электронный ресурс] / С.О.Гонсалес // Научный блог - Режим доступа : http://www.piterwilson.com/blog
6. Официальная документация библиотеки FFMPEG [Электронный ресурс].
- Режим доступа: http://www.trac.ffmpeg.org
7. Гонсалес, C.O Android MediaPlayer, not quite there yet. [Электронный ресурс] / С.О.Гонсалес // Научный блог - Режим доступа : http://www.piterwilson.com/blog/2014/03/11/android-mediaplayer-not-quite-th ere-yet/
8. Android MediaPlayer. Расширяем возможности с помощью прокси. [Электронный ресурс] - Режим доступа: https://habrahabr.ru/post/241858/
9. Gapless playback. [Электронный ресурс] - Режим доступа: https://en.wikipedia.org/wiki/Gapless playback
10. Все о метаданных (тегах) для аудио. [Электронный ресурс] - Режим доступа: http://forum.allnokia.ru/viewtopic.php?t=51934
11.Supported Media Formats.[Электронный ресурс] - Режим доступа: https://developer.android.com/guide/appendix/media-formats.html
12. Music Player with Notification and Lock Screen Controls. [Электронный
ресурс] - Режим доступа:
http://tutorialsface.blogspot.ru/2014/07/music-player-with-notification-and-loc k.html
13. The MP3 Tag Standard. [Электронный ресурс] - Режим доступа: http://id3.org/
14.Энциклопедия звука. [Электронный ресурс] - Режим доступа: http://wikisound.org/
15.Сильвен Ретабоуил, Android NDK. Разработка приложений под Android на C/C++ / Сильвен Ретабоуил — М.:Издательство “ДМК”, 2014 — 496 c.
16.Официальная документация Gradle [Электронный ресурс]. - Режим доступа: http:// gradle. org/documentation/
17.Официальная документация библиотеки Jaudiotagger [Электронный ресурс]. - Режим доступа: http ://www.jthink.net/j audiotagger/
18. MusicBobber: Audio Widget Overlay View [Электронный ресурс]. - Режим доступа: https://github.com/Cleveroad/MusicBobber
19. Hypertext Transfer Protocol — HTTP/1.1 / R. Fielding [и др.]. б. м.: б. и., 1999. 114 с.
20. Android-visualizer, страница проекта [Электронный ресурс]. - Режим доступа: https://github.com/felixpalmer/android-visualizer
21. Приложение Musicsense [Электронный ресурс]. - Режим доступа: https://play.google.com/store/apps/details?id=com.tentracks.musicsense
22. Приложение Beeline Волна [Электронный ресурс]. - Режим доступа: https://play.google.com/store/apps/details?id=com.beeline.wave
23. Приложение Musix [Электронный ресурс]. - Режим доступа:
https://play.google.com/store/apps/details?id=il.co.pelephone.musix.UI
24. Страница библиотеки StreamPlayer [Электронный ресурс]. - Режим доступа: https://github.com/Stasssm/streamplayer


Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ