Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android SDK
Code

Створення музичного програвача на Android: настройка проекту

by
Difficulty:BeginnerLength:LongLanguages:

Ukrainian (українська мова) translation by Andy Yur (you can also view the original English article)

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

Вступ

Для створення music player потрібно клас ContentResolver для вилучення треків на пристрої, клас MediaPlayer для відтворення звуку і клас MediaController для управління плеєром. Ми також будемо використовувати Service для відтворення звуку, коли користувач не взаємодіє безпосередньо з додатком. Далі можете не дивитися, якщо ви навіть посередній розробник Android, і, якщо вже створили декілька додатків, вам буде нецікаво. Ось попередній вигляд готового додатка:

Android Music Player

У цьому уроці ми створимо додаток і запитаємо призначене для користувача пристрій для аудіофайлів з використанням класів ContentResolver і Cursor. У наступній частині ми будемо використовувати зразок Adapter для показу пісень у вигляді списку, почала відтворення при виборі елемента зі списку. В останньому випуску серії ми використовуємо клас MediaController, щоб дати користувачу контроль над відтворенням, реалізувати функції перемотування вперед і назад і включити функцію shuffle. Після закінчення серії ми розглянемо інші аспекти відтворення media, які можуть поліпшити додаток, такі як обробка фокуса аудіо, показ медіафайлів в різних видах і відтворення потокового media.

1. Створення та налагодження нового проекту

Крок 1

Створіть новий проект Android. Якщо ви використовуєте Eclipse, то нехай IDE (Integrated Development Environment) створить для вас основний клас Activity і файл макета. Для деяких кодів, які ми використовуємо в цій серії, знадобиться мінімальний рівень API 16, так що вам потрібно буде зробити додаткові кроки для підтримки більш старих версій. Коли проект буде створений, відкрийте файл Manifest проекту. Усередині елемента manifest додайте наступне дозвіл:

Ми зробимо це дозвіл, щоб відтворення музики тривало, коли пристрій не працює. У вашому Manifest повинен бути елемент для основного класу Activity.  Додайте наступні атрибути в елемент activity, щоб встановити screenOrientation та launchMode:

Для простоти ми будемо дотримуватися книжкової орієнтації. launchMode допоможе процесу запустити програму після його видалення. Ми відобразимо повідомлення про поточну пісні, натискання на повідомлення поверне користувача в додаток. Ми також будемо використовувати клас Service для відтворення музики. Додайте наступний рядок в Manifest проекту всередині елемента application і після елемента activity:

Змініть ім'я пакета, як хочете і змініть ім'я класу, якщо бажаєте.

Крок 2

Відкрийте основний файл layout проекту і замініть його на наступний layout:

Обов'язково змініть атрибут tools:context, якщо ваш основний клас Activity називається по-іншому. Макет включає ListView, в якому ми представимо список пісень.

Ми збираємося включити два пункти меню для перемикання функції перемішування і виходу з програми. Відкрийте файл головного меню (res/menu/main.xml) і замініть його вміст наступним:

Якщо подобається, ви можете зберігати рядки заголовка в файлі res/values​/strings.xml. Ці два елементи відносяться до drawable файлів. Створіть власні або використовуйте ці два зображення для початку:

Android Music Player Random Button
Android Music Player End Button

Ми також будемо використовувати іконку сповіщення про відтворення. Створіть його або використовуйте цю:

Android Music Player Play Button

Код буде посилатися на зображення, використовуючи імена rand, end і play, тому переконайтеся, що ви використовуєте одні і ті ж імена файлів. Скопіюйте зображення в папку (-і) drawables вашого проекту. Ми будемо реалізовувати ці дії пізніше.

2. Запит пристрої для пісень

Крок 1

Спробуємо запитати пристрій користувача для аудіофайлів. По-перше, додайте новий клас Song. Ми будемо використовувати цей клас для моделювання даних одного звукового файлу. В оголошенні класу додайте три змінні екземпляра даних, які ми збережемо для кожного треку:

Потім додайте метод конструктора, в якому ми створюємо екземпляри змінних:

Нарешті, додайте методи get для змінних екземпляра:

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

Крок 2

Відкрийте основний клас Activity і додайте imports:

Оголосіть наступні змінні екземпляра перед методом onCreate:

Ми будемо зберігати пісні в списку і показувати їх в екземплярі ListView в головному layout. У onCreate після установки виду вмісту витягніть екземпляр ListView, використовуючи ID, який ми дали йому в головному макеті:

Створіть список, як показано нижче:

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

Усередині цього методу створіть екземпляр ContentResolver, витягніть URI для зовнішніх музичних файлів і створіть екземпляр Cursor, використовуючи екземпляр ContentResolver для запиту музичних файлів:

Тепер ми можемо перебрати результати, спочатку перевіривши, що у нас достовірні дані:

Спочатку ми витягуємо індекси стовпців для цікавлять нас елементів даних для кожної пісні, потім ми використовуємо їх для створення нового об'єкта Song і додавання його в список, перед тим як продовжити огляд результатів.

Поверніться в onCreate після коду, який ми додали, викличте цей новий метод:

3. Відображення композицій

Крок 1

Тепер ми можемо показати список пісень в інтерфейсі. У методі onCreate після виклику допоміжного методу, який ми створили хвилину назад, давайте відсортуємо дані так, щоб пісні представлялися в алфавітному порядку:

Ми використовуємо змінну title в класі Song, використовуючи додані методи get, щоб реалізувати метод compare, сортуючи пісні по заголовкам.

Крок 2

Визначимо layout для представлення кожної пісні в списку. Додайте новий файл в папку res/layout вашого проекту, назвавши його song.xml і використовуйте наступне:

Не соромтеся змінювати layout на свій смак. Кожна пісня в списку буде представлена ​​рядками назви і артиста, тому ми будемо використовувати TextViews для відображення цих даних. Зверніть увагу: в тезі відкриття LinearLayout вказано атрибут onClick. Ми будемо використовувати цей метод в основному класі Activity, щоб реагувати на вибір пісні в списку, програючи пісню, представлену елементом списку, який був обраний.

Крок 3

Ми будемо використовувати Adapter для відображення пісень у вигляді списку. Додайте в додаток новий клас SongAdapter або назвіть інакше. При створенні класу призначте йому суперклас android.widget.BaseAdapter. Eclipse повинен вставити наступну схему:

Вам потрібно буде додати наступні imports:

В оголошенні класу задайте наступні змінні:

Ми передамо список композицій з основного класу Activity і використовуємо LayoutInflater для зіставлення рядків заголовка і виконавця з TextViews в створеному нами layout пісні.

Після змінних екземпляра надайте адаптера метод конструктора для їх створення:

Змініть вміст методу getCount, щоб повернути розмір списку:

Ви можете залишити методи getItem і getItemId недоторканими. Оновлення реалізацію методу getView, як показано нижче:

Ми встановлюємо текст назви і виконавця, вибираючи правильний екземпляр Song зі списку, використовуючи індекс позиції, зіставляючи ці рядки з уявленнями, що були додані в файл макета пісні. Ми також встановлюємо позицію в якості тега виду, яка дозволить нам грати правильну пісню, коли користувач натискає на його зі списку. Пам'ятайте, що файл формату song.xml включав атрибут onClick. Ми будемо використовувати метод, зазначений там, щоб отримати тег в Activity.

Крок 3

Повернувшись в основний клас Activity, в методі onCreate після сортування списку створіть новий екземпляр класу Adapter і встановіть його в ListView:

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

Висновок

Тепер ми налаштували додаток для читання пісень з користувацького пристрою. У наступній частині ми почнемо відтворення, коли користувач вибере пісню, використовуючи клас MediaPlayer. Ми реалізуємо відтворення з використанням класу Service, щоб воно тривало, поки користувач зайнятий іншими додатками. Нарешті, ми будемо використовувати клас MediaController, щоб дати користувачеві управляти програванням.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.