Giter Site home page Giter Site logo

yandex-music-wave-player's Introduction

Yandex Music Wave Player

  1. Вступление
  2. Требования
  3. Возможности
  4. Установка и запуск
  5. Файл конфигурации
  6. Элементы управления
  7. Контекстное меню
  8. В разработке
  9. Известные проблемы

Вступление

JavaFX приложение для прослушивания треков из "Моей Волны" Яндекс Музыки. Работает на базе Yandex Music API.

preview1 preview2 preview3 preview4


Требования


Возможности

  • Пауза/Воспроизведение трека;
  • Переключение трека;
  • Регулирование громкости;
  • Добавление/Удаление трека в/из "Мне нравится";
  • Получение ссылки на скачивание трека;
  • Получение полного названия трека, включая исполнителей;
  • Изменение внешнего вида плеера;
  • Изменение расположения плеера;
  • Конфигурация параметров при помощи 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 токен. Способы получения токена.

enter_api_key

После отправки токена появится окно плеера. Стандартное расположение плеера на экране - середина (но это не точно).


Файл конфигурации

При первом запуске будет создан конфигурационный файл 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

Background

Параметры фона плеера.

Параметр Тип Диапазон Пример
color String -
background:
  color: '#181818'
...
background-color-181818
background:
  color: peru
...
background-color-peru.png
background: 
  color: 'linear-gradient(to left, 
      #F55765 0%, 
      #395666 50%, 
      #105163 100%)'
...
background-color-linear-gradient
opacity Double 0.0...1.0
background:
  color: white
  opacity: 0.2
...
background-opacity
radius Integer 0...999
background:
  radius: 0
...
background-radius-0
background:
  radius: 40
...
background-radius-40

Bar

Параметры индикатора проигрывания трека.

Параметр Тип Диапазон Пример
bgColor String См. здесь
...
bar:
  bgColor: '#6d6d6d'
...
bar-bg-color-6d6d6d
...
bar:
  bgColor: moccasin
...
bar-bg-color-moccasin
color String См. здесь
...
bar:
  bgColor: '#6d6d6d'
  color: '#ffdb4d'
...
bar-color-ffdb4d
...
bar:
  bgColor: moccasin
  color: aqua
...
bar-color-aqua
opacity Double 0.0...1.0
background:
  color: rosybrown 
  opacity: 1.0 
  radius: 20 
bar: 
  bgColor: steelblue 
  color: yellow 
  opacity: 0.3
...
bar-opacity

Duration

Параметры меток длительности трека.

Параметр Тип Диапазон Пример
color String -
...
duration:
  color: '#ffffff' 
...
duration-color-ffffff
...
duration:
  color: 'linear-gradient(to left, 
      #f83921 0%, 
      #b89d31 50%, 
      #c12345 100%)'
...
duration-color-linear-gradient
fontFamily String -
...
duration:
  fontFamily: scientifica
...
duration-font-family
fontSize Integer 0...999
...
duration:
  fontSize: 8
...
duration-font-size
paddingLeft 
paddingRight
Integer 0...999
...
duration:
  paddingLeft: 5
  paddingRight: 20
...
duration-padding
opacity Double 0.0...1.0
...
duration:
  color: red
  opacity: 0.3
...
duration-opacity

Position

Параметры расположения плеера.

Параметр Тип Диапазон Пример Примечание
x Integer screen resolution
...
position:
  x: 320
...
Отступ от левого края экрана
y Integer screen resolution
...
position:
  y: 5
...
Отступ от верхнего края экрана

Title

Параметры метки исполнителя и названия трека.

Параметр Тип Диапазон Пример
color String -
...
title:
  color: plum
...
title-color-plum
...
title:
  color: 'linear-gradient(to left, 
      #00ffff 0%, 
      #dda0dd 50%, 
      #ffffff 100%)'
...
title-color-linear-gradient
fontFamily String -
...
title:
  fontFamily: Serif
...
title-font-family
fontSize Integer 0...999
...
title:
  fontSize: 8
...
title-font-size
opacity Double 0.0...1.0
...
title:
  color: chartreuse 
  opacity: 0.3
...
title-opacity

User

Параметры пользователя.

Не рекомендуется изменять вручную.

Параметр Тип Диапазон Пример
id Long -
...
user:
  id: 123456789 
...
token String -
...
user:
  token: y0_AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
...

Volume

Параметры начальной громкости плеера.

Параметр Тип Диапазон Пример
volume Double 0.0...1.0
...
volume: 0.3

Элементы управления

buttons

Описание элементов управления:

  1. Воспроизведение/Пауза.
  2. Переключение трека.
  3. Индикатор проигрывания. При нажатии изменяет текущее время проигрывания.
  4. Добавить/Убрать трек в/из "Мне нравится".
  5. Управление громкостью. При нажатии включает/отключает звук. При прокручивании колеса мыши - изменение уровня громкости.

Контекстное меню

Вызов контекстного меню осуществляется по нажатию правой кнопкой мыши в крайней правой/левой области плеера, включая область с элементами управления.

context-menu

Описание пунктов меню:

  • Copy title - Скопировать название трека, включая исполнителей.
  • Copy link - Скопировать ссылку на скачивание трека.
  • Logout - Удаление данных пользователя и вызов окна авторизации.
  • Exit - Завершение работы программы.

В разработке

  • Возможность изменения размера плеера (на данный момент имеет фикс. значения высоты: 30px и ширины: 410px).
  • Возможность изменения цветов элементов управления.

Известные проблемы

  • Периодические повторы треков.

yandex-music-wave-player's People

Contributors

madnessday666 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.