- Вступление
- Требования
- Возможности
- Установка и запуск
- Файл конфигурации
- Элементы управления
- Контекстное меню
- В разработке
- Известные проблемы
JavaFX приложение для прослушивания треков из "Моей Волны" Яндекс Музыки. Работает на базе Yandex Music API.
- JDK 17+
- Gradle 8.5+ (Скачивается автоматически в процессе сборки).
- ffmpeg
- Пауза/Воспроизведение трека;
- Переключение трека;
- Регулирование громкости;
- Добавление/Удаление трека в/из "Мне нравится";
- Получение ссылки на скачивание трека;
- Получение полного названия трека, включая исполнителей;
- Изменение внешнего вида плеера;
- Изменение расположения плеера;
- Конфигурация параметров при помощи YAML файла.
Склонировать репозиторий:
git clone https://github.com/madnessday666/yandex-music-wave-player.git
Перейти в директорию с проектом:
cd yandex-music-wave-player
Собрать образ с помощью gradle и плагина Jlink:
./gradlew jlink
После завершения файлы приложения будут находится в build/image. Переместите их в более удобное место, например:
cp -R build/image ~/player
Последующие запуски выполнять при помощи файла yandex-music-wave-player в директории bin:
cd ~/player/bin
./yandex-music-wave-player
Программа попросит ввести API токен. Способы получения токена.
После отправки токена появится окно плеера. Стандартное расположение плеера на экране - середина (но это не точно).
При первом запуске будет создан конфигурационный файл config.yaml в директории $HOME/.config/ymwp/
При последующих запусках он будет использован для установки параметров в приложении.
Структура файла:
!!ymwp.model.config.ConfigFile background: color: '#181818' opacity: 1.0 radius: 20 bar: bgColor: '#6d6d6d' color: '#ffdb4d' opacity: 1.0 duration: color: '#000' fontFamily: System fontSize: 11 opacity: 1.0 paddingLeft: 5 paddingRight: 5 position: x: 768 y: 360 title: color: '#f4f4f4' fontFamily: System fontSize: 14 opacity: 1.0 user: id: $YOUR_USER_ID token: $YOUR_TOKEN volume: 0.6
Параметры фона плеера.
Параметры индикатора проигрывания трека.
Параметр | Тип | Диапазон | Пример |
---|---|---|---|
bgColor |
String |
См. здесь |
... bar: bgColor: '#6d6d6d' ... ![]() ... bar: bgColor: moccasin ... ![]() |
color |
String |
См. здесь |
... bar: bgColor: '#6d6d6d' color: '#ffdb4d' ... ![]() ... bar: bgColor: moccasin color: aqua ... ![]() |
opacity |
Double |
0.0...1.0 |
background: color: rosybrown opacity: 1.0 radius: 20 bar: bgColor: steelblue color: yellow opacity: 0.3 ... ![]() |
Параметры меток длительности трека.
Параметры расположения плеера.
Параметр | Тип | Диапазон | Пример | Примечание |
---|---|---|---|---|
x |
Integer |
screen resolution |
... position: x: 320 ... |
Отступ от левого края экрана |
y |
Integer |
screen resolution |
... position: y: 5 ... |
Отступ от верхнего края экрана |
Параметры метки исполнителя и названия трека.
Параметры пользователя.
Не рекомендуется изменять вручную.
Параметр | Тип | Диапазон | Пример |
---|---|---|---|
id |
Long |
- |
... user: id: 123456789 ... |
token |
String |
- |
... user: token: y0_AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ... |
Параметры начальной громкости плеера.
Параметр | Тип | Диапазон | Пример |
---|---|---|---|
volume |
Double |
0.0...1.0 |
... volume: 0.3 |
Описание элементов управления:
- Воспроизведение/Пауза.
- Переключение трека.
- Индикатор проигрывания. При нажатии изменяет текущее время проигрывания.
- Добавить/Убрать трек в/из "Мне нравится".
- Управление громкостью. При нажатии включает/отключает звук. При прокручивании колеса мыши - изменение уровня громкости.
Вызов контекстного меню осуществляется по нажатию правой кнопкой мыши в крайней правой/левой области плеера, включая область с элементами управления.
Описание пунктов меню:
- Copy title - Скопировать название трека, включая исполнителей.
- Copy link - Скопировать ссылку на скачивание трека.
- Logout - Удаление данных пользователя и вызов окна авторизации.
- Exit - Завершение работы программы.
- Возможность изменения размера плеера (на данный момент имеет фикс. значения высоты: 30px и ширины: 410px).
- Возможность изменения цветов элементов управления.
- Периодические повторы треков.