AIMP Forum

AIMP for Windows => Дополнения / Addons => Разработка / Development => Topic started by: VRS on October 07, 2023, 05:26:23

Title: (Случайная Тишина) во время воспроизведение музыки
Post 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(&currentVolume);

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

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

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

        // Восстановите исходную громкость звука
        playerService->SetVolume(currentVolume);
    }
}
Title: Re: (Случайная Тишина) во время воспроизведение музыки
Post by: Artem on October 07, 2023, 13:48:37
Честно говоря, тут написан бред. Почему оно и не работает. Скачайте пакет SDK, там есть документация и примеры (правда на дельфе). В качестве примеров на с++, советую посмотреть код этих плагинов: https://github.com/ArtemIzmaylov/aimp_vgmstream и https://github.com/ArtemIzmaylov/AIMPYouTube
Title: Re: (Случайная Тишина) во время воспроизведение музыки
Post by: Artem on October 07, 2023, 13:49:54
По алгоритму, как я понял, нейросетка предложила временно вырубать громкость, так вот, ждать в главном потоке нельзя - вы повесите интерфейс. Делать надо либо через поток, либо через таймер со случайным интервалом
Title: Re: (Случайная Тишина) во время воспроизведение музыки
Post by: VRS on October 07, 2023, 19:34:23
Скачайте пакет SDK, там есть документация и примеры (правда на дельфе)
что если написать такой плагин в делфи? Хотя на каком языке написать не подскажите (в каком будет легче)? И хочу узнать как вы бы реализовали такой плагин через потоки
Title: Re: (Случайная Тишина) во время воспроизведение музыки
Post by: Artem on October 08, 2023, 09:41:41
Реализуйте на том языке, который вы лучше знаете.
Title: Re: (Случайная Тишина) во время воспроизведение музыки
Post by: VRS on October 08, 2023, 09:58:00
OK, я решил сделать это на питон , но спасибо за подсказку