AIMP for Windows > Разработка / Development
(Случайная Тишина) во время воспроизведение музыки
(1/2) > >>
VRS:
Всем привет
Хочу написать плагин для случайной тишины (для эксперимента),
но я не знаю с чего начать.
Я понял что плагины написаны на языке 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(&currentVolume);

        // Генерируйте случайное число для уменьшения звука
        float randomVolume = static_cast<float>(rand()) / static_cast<float>(RAND_MAX);

        // Установите новую громкость звука
        playerService->SetVolume(randomVolume);

        // Подождите некоторое время (например, секунду)
        Sleep(1000);

        // Восстановите исходную громкость звука
        playerService->SetVolume(currentVolume);
    }
}
Artem:
Честно говоря, тут написан бред. Почему оно и не работает. Скачайте пакет SDK, там есть документация и примеры (правда на дельфе). В качестве примеров на с++, советую посмотреть код этих плагинов: https://github.com/ArtemIzmaylov/aimp_vgmstream и https://github.com/ArtemIzmaylov/AIMPYouTube
Artem:
По алгоритму, как я понял, нейросетка предложила временно вырубать громкость, так вот, ждать в главном потоке нельзя - вы повесите интерфейс. Делать надо либо через поток, либо через таймер со случайным интервалом
VRS:

--- Quote from: Artem on October 07, 2023, 13:48:37 ---Скачайте пакет SDK, там есть документация и примеры (правда на дельфе)
--- End quote ---
что если написать такой плагин в делфи? Хотя на каком языке написать не подскажите (в каком будет легче)? И хочу узнать как вы бы реализовали такой плагин через потоки
Artem:
Реализуйте на том языке, который вы лучше знаете.
Navigation
Message Index
Next page

Go to full version