AIMP Forum
AIMP for Windows => Дополнения / Addons => Разработка / Development => Topic started by: VRS on October 07, 2023, 05:26:23
-
Всем привет
Хочу написать плагин для случайной тишины (для эксперимента),
но я не знаю с чего начать.
Я понял что плагины написаны на языке c++ ,
с помощью chatGPT я получил такой код, но код не работает ,
помогите пожалуйста.
#include "AIMPSDK.h"
static IAIMPServicePlayer* playerService = nullptr;
PLUGIN_EXPORT HRESULT WINAPI AIMPPluginInitialize(IAIMPCore* core) {
if (SUCCEEDED(core->QueryInterface(IID_IAIMPServicePlayer, reinterpret_cast<void**>(&playerService)))) {
// Инициализация вашего плагина
return S_OK;
}
return E_FAIL;
}
PLUGIN_EXPORT void WINAPI AIMPPluginFinalize() {
// Освободите ресурсы вашего плагина
if (playerService != nullptr) {
playerService->Release();
playerService = nullptr;
}
}
PLUGIN_EXPORT void WINAPI AIMPPluginInfo(IAIMPPluginInfo* info) {
// Заполните информацию о вашем плагине
}
PLUGIN_EXPORT void WINAPI AIMPPluginExecute(IAIMPCore* core) {
if (playerService != nullptr) {
// Получите текущую громкость звука
float currentVolume;
playerService->GetVolume(¤tVolume);
// Генерируйте случайное число для уменьшения звука
float randomVolume = static_cast<float>(rand()) / static_cast<float>(RAND_MAX);
// Установите новую громкость звука
playerService->SetVolume(randomVolume);
// Подождите некоторое время (например, секунду)
Sleep(1000);
// Восстановите исходную громкость звука
playerService->SetVolume(currentVolume);
}
}
-
Честно говоря, тут написан бред. Почему оно и не работает. Скачайте пакет SDK, там есть документация и примеры (правда на дельфе). В качестве примеров на с++, советую посмотреть код этих плагинов: https://github.com/ArtemIzmaylov/aimp_vgmstream и https://github.com/ArtemIzmaylov/AIMPYouTube
-
По алгоритму, как я понял, нейросетка предложила временно вырубать громкость, так вот, ждать в главном потоке нельзя - вы повесите интерфейс. Делать надо либо через поток, либо через таймер со случайным интервалом
-
Скачайте пакет SDK, там есть документация и примеры (правда на дельфе)
что если написать такой плагин в делфи? Хотя на каком языке написать не подскажите (в каком будет легче)? И хочу узнать как вы бы реализовали такой плагин через потоки
-
Реализуйте на том языке, который вы лучше знаете.
-
OK, я решил сделать это на питон , но спасибо за подсказку