ст. Лісун А.Г., к.т.н. Супруненко О.О.

Черкаський національний університет імені Богдана Хмельницького

 

Модель розширення функцій аудіоплеєра

з врахуванням вподобань користувача

 

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

Наочним прикладом реалізації такого сервісного додатку є аудіоплеєр з функцією підбору музичних композицій за вподобаннями користувача. Розроблюваний додаток створюється для мобільної платформи Android і має певні обмеження. До обмежень належать: непостійний (періодичний) доступ до мережі Internet, обмежений обсяг пам’яті та обмеження на авторські права аудіокомпозицій. Структурна схема програмного додатку з функцією формування плейлістів на основі вподобань користувача наведена на рис. 1.

На рисунку представлено загальну структуру аудіоплеєра та взаємодію мобільного додатку з елементами ОС Android. Основним функціональним модулем додатку є модуль відтворення аудіокомпозицій, який безпосередньо відповідає за відтворення аудіофайлів. Він складається з ряду елементів: блоку ідентифікації композиції, блоку плейлиста, блоку історії відтворення композицій «playback history», блоку ідентифікації часу програвання.

При виборі певної композиції у модулі «Користувацький інтерфейс» відбувається передача ідентифікаторів аудіофайлів, серед яких є і ідентифікатор вибраної композиції, в блок «Плейліст» модуля відтворення аудіокомпозиції. Передача набору ідентифікаторів аудіокомпозицій, а не лише ідентифікатору вибраної композиції обумовлена тим, що модуль відтво­рення аудіокомпозиції має бути повністю автономним і без допомоги модуля «Користувацький інтерфейс» відтворювати послідовність аудіокомпозицій.

Рисунок. 1 – Структурна схема аудіоплеєра під ОС Android з функцією формування плейлістів на основі вподобань користувача

Після отримання у блоці «Плейліст» набору ідентифікаторів композицій, «Блок ідентифікації композиції» отримує ідентифікатор вибраної композиції і робить запит до бази даних медіафайлів, яка є частиною ОС Android [1]. Результатом запиту є отримання модулем відтворення аудіокомпозиції такої інформації про аудіокомпозицію: назва композиції, виконавець, альбом, жанр та шлях до аудіофайлу на диску. Шлях до аудіофайлу передається в блок Media Player, який є частиною ОС Android, для подальшого відтворення цього аудіофайлу [2].

Після початку відтворення композиції модуль відтворення аудіокомпозиції активізує у блоці «Користувацький інтерфейс» відповідну композицію і візуалізує назву композиції, ім’я виконавця, назву альбому та жанр для користувача. Аналогічна послідовність дій відбувається при переході до наступного ідентифікатора аудіокомпозиції в блоці «Плейліст» в результаті перемикання користувачем або закінчення відтворення попередньої аудіокомпозиції.

Блок «Playback History» необхідний для зберігання послідовності відтворення аудіокомпозицій в режимі «перемішаного порядку відтворення» (shuffle mode), в якому набір ідентифікаторів, що передається з модуля «Користувацький інтерфейс», випадковим чином перемішується. Тому без блоку «Playback History» не можливо відтворити зворотній порядок програвання аудіокомпозицій, що унеможливлює реалізацію функції «перейти до попередньої композиції» в режимі «перемішаного порядку відтворення».

В аудіододатку реалізований також підбір композицій на основі вподобань користувача, який функціонує завдяки взаємодії блоку ідентифікації часу програвання (модуль відтворення аудіокомпозицій), модуля формування моделі вподобань користувача, блоку кешу та модуля зв’язку з сервером через API.

Блок ідентифікації часу програвання дозволяє зафіксувати ті композиції, які були прослухані більше ніж наполовину, та передати у блок кешу «Дані про кількість прослуховувань кожного жанру» команду на збільшення лічильника кількості прослуховувань для відповідного жанру на одиницю.

Результатом роботи модуля формування моделі вподобань користувача є набір пар «жанр-кількість рекомендованих композицій, які потрібно отримати для даного жанру», який отримується наступним чином: 1) Блок групування даних отримує дані збережені в кеші «Дані про кількість прослуховувань кожного жанру», сортує набір за спаданням кількості прослуховувань. 2) У блоці статистичної обробки отриманий масив ділиться навпіл і для подальшої обробки вибирається його перша частина, а також відбувається нормування кількості прослуховувань. Формується пара «жанр-кількість композицій, які потрібно вибрати для даного жанру», утворені пари групуються у набір, який і служить вхідними даними для модуля зв’язку з сервером через API.

Модуль зв’язку з сервером через API робить запит на сервер та вибирає дані про аудіокомпозиції деякого жанру в кількості, яка була визначена в блоці статистичної обробки. Після отримання такі данні зберігаються в кеш «Дані про рекомендовані аудіокомпозиції» і відображаються у блоці «Користувацький інтерфейс». Отримавши такі дані користувач може переглянути інформацію про кожну композицію. Наприклад, по кліку формується запит для вибраної аудіокомпозиції до пошукової системи і відбувається виконання цього запиту за допомогою браузера.

Таким чином, реалізований мобільний додаток аудіоплеєра дозволяє здійснювати автоматичний пошук інформації про аудіокомпозиції за вподобаннями користувача та формування плейлистів з посиланнями на аудіокомпозиції для розширення набору аудіофайлів для визначеного користувача.

 

Література

1.   Reto Meier. Professional Android Application Development / Reto Meier. –  Wrox, March 1, 2010. – 193 с.

2.   Media Playback. Режим доступу: https://developer.android.com/guide/topics/ media/mediaplayer.html. Перевірено: 21.05.2016.