Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Гайд Как сделать нормальный медиа плеер через DLL

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
15 Май 2026
Сообщения
13
Реакции
0
Весь форум заполнен media-player-info-0.1.0.jar но я вам покажу более хороший способо реализаций
Элемент HUD сами сделаете
Моя DLL -
Пожалуйста, авторизуйтесь для просмотра ссылки.
для пастеров или кто не шарит релиз сразу -
Пожалуйста, авторизуйтесь для просмотра ссылки.
качаем ласт версию (я буду её обновлять если что)
Нормальный атлас иконок -
Пожалуйста, авторизуйтесь для просмотра ссылки.
(Ток не бейте лопатами я их фастом делал) (если чо эт MTSDF) (Картинка иконок = букв ниже)
Пожалуйста, авторизуйтесь для просмотра ссылки.


Что это за нативка

MediaInfoNative – это Windows DLL для Java, которая читает текущую медиасессию Windows и возвращает данные о треке в JSON.

Библиотека работает с GlobalSystemMediaTransportControlsSessionManager, поэтому понимает приложения, которые отображаются в штатной медиапанели Windows. Это Spotify, браузерные плееры (YouTube, SoundCloud и т.д.), системные плееры и любые другие совместимые источники.

Плюсы перед обычными jar-библиотеками:
- Работает напрямую с системой Windows, а не через костыли с перехватом окон
- Получает обложку трека
- Умеет управлять плеером (play/pause/next/previous)
- Нет лишних зависимостей
- Работает быстро и стабильно

🛠️ Как подключить к проекту

1. Кладёте MediaInfoNative.dll в папку native вашего клиента или рядом с jar файлом.

2. Создаёте Java-класс для работы с DLL:

java
public final class NativeMediaInfo {
static {
System.loadLibrary("MediaInfoNative");
}

private NativeMediaInfo() {}

public static native String getCurrentMediaJson();
public static native boolean controlCurrentMedia(String action);
}

3. Вызываете в нужном месте:

java
String json = NativeMediaInfo.getCurrentMediaJson();


4. При запуске клиента указываете путь к DLL:

bat
java -Djava.library.path=C:\папка\с\dll -jar your-client.jar

Или просто кладёте DLL в папку, которая уже есть в `java.library.path` (например, папка с игрой или `%JAVA_HOME%\bin`).

🎮 Как использовать в HUD

Опрашиваете DLL каждые 500-1000 мс и обновляете интерфейс.

Примерный алгоритм:

java
String json = NativeMediaInfo.getCurrentMediaJson();
// парсите JSON любой библиотекой
// смотрите поле hasSession
// если true - показываете трек, если false - скрываете виджет

Поля, которые приходят:

- title -название трека
- artist - исполнитель
- album - альбом
- coverBase64 - обложка в base64
- sourceApp - откуда играет (Spotify.exe, chrome.exe и т.д.)
- status - playing / paused / stopped
- isPlaying - true если играет
- positionSeconds - текущая позиция в секундах
- durationSeconds - длительность в секундах

Пример JSON ответа:

```json
{"ok":true,"hasSession":true,"title":"Track name","artist":"Artist","album":"Album","coverBase64":"...","sourceApp":"Spotify.exe","status":"playing","isPlaying":true,"positionSeconds":42,"durationSeconds":180}
```

Если ничего не играет:

json
{"ok":true,"hasSession":false}

Как достать обложку

coverBase64 приходит в base64. Превращаете в картинку так:

java
byte[] coverBytes = java.util.Base64.getDecoder().decode(coverBase64);
BufferedImage cover = ImageIO.read(new ByteArrayInputStream(coverBytes));

🎮 Управление плеером

Команды которые поддерживаются:

java
NativeMediaInfo.controlCurrentMedia("play");
NativeMediaInfo.controlCurrentMedia("pause");
NativeMediaInfo.controlCurrentMedia("toggle");
NativeMediaInfo.controlCurrentMedia("next");
NativeMediaInfo.controlCurrentMedia("previous");

Можно повесить на кнопки в HUD.

⚠️ Важное замечание

Java-класс NativeMediaInfo должен лежать в default package (без пакетов), иначе JNI не найдёт метод. Если хотите использовать свой пакет – придётся пересобрать DLL с правильным именем метода.

✌️Мой первый пост
Спасибо за внимание. Если вам понравился гайд то напишите, буду чаще делать такое.
 

Вложения

  • photo_2026-05-18_00-45-10.jpg
    photo_2026-05-18_00-45-10.jpg
    9.4 KB · Просмотры: 55
Весь форум заполнен media-player-info-0.1.0.jar но я вам покажу более хороший способо реализаций
Элемент HUD сами сделаете
Моя DLL -
Пожалуйста, авторизуйтесь для просмотра ссылки.
для пастеров или кто не шарит релиз сразу -
Пожалуйста, авторизуйтесь для просмотра ссылки.
качаем ласт версию (я буду её обновлять если что)
Нормальный атлас иконок -
Пожалуйста, авторизуйтесь для просмотра ссылки.
(Ток не бейте лопатами я их фастом делал) (если чо эт MTSDF) (Картинка иконок = букв ниже)
Пожалуйста, авторизуйтесь для просмотра ссылки.


Что это за нативка

MediaInfoNative – это Windows DLL для Java, которая читает текущую медиасессию Windows и возвращает данные о треке в JSON.

Библиотека работает с GlobalSystemMediaTransportControlsSessionManager, поэтому понимает приложения, которые отображаются в штатной медиапанели Windows. Это Spotify, браузерные плееры (YouTube, SoundCloud и т.д.), системные плееры и любые другие совместимые источники.



🛠️ Как подключить к проекту

1. Кладёте MediaInfoNative.dll в папку native вашего клиента или рядом с jar файлом.

2. Создаёте Java-класс для работы с DLL:



3. Вызываете в нужном месте:




4. При запуске клиента указываете путь к DLL:




Или просто кладёте DLL в папку, которая уже есть в `java.library.path` (например, папка с игрой или `%JAVA_HOME%\bin`).

🎮 Как использовать в HUD

Опрашиваете DLL каждые 500-1000 мс и обновляете интерфейс.

Примерный алгоритм:



Поля, которые приходят:

- title -название трека
- artist - исполнитель
- album - альбом
- coverBase64 - обложка в base64
- sourceApp - откуда играет (Spotify.exe, chrome.exe и т.д.)
- status - playing / paused / stopped
- isPlaying - true если играет
- positionSeconds - текущая позиция в секундах
- durationSeconds - длительность в секундах

Пример JSON ответа:



Если ничего не играет:



Как достать обложку


coverBase64 приходит в base64. Превращаете в картинку так:



🎮 Управление плеером

Команды которые поддерживаются:



Можно повесить на кнопки в HUD.

⚠️ Важное замечание

Java-класс NativeMediaInfo должен лежать в default package (без пакетов), иначе JNI не найдёт метод. Если хотите использовать свой пакет – придётся пересобрать DLL с правильным именем метода.

✌️Мой первый пост
Спасибо за внимание. Если вам понравился гайд то напишите, буду чаще делать такое.
Пожалуйста, авторизуйтесь для просмотра ссылки.
уже похуй че смотреть впринципе
 
Назад
Сверху Снизу