Как удалить кратковременную остановку, возникающую при изменении скорости воспроизведения в FMOD? - PullRequest
0 голосов
/ 10 сентября 2018
#include "fmod.h"
#include "fmod_common.h"
#include "fmod_errors.h"
#include <unistd.h>

int main()
{
    FMOD_SYSTEM* system;
    FMOD_SOUND* sound;
    FMOD_CHANNEL* channel;
    FMOD_DSP* dsp;
    FMOD_System_Create(&system);
    FMOD_System_Init(system, 320, FMOD_INIT_NORMAL, nullptr);
    FMOD_System_CreateDSPByType(system, FMOD_DSP_TYPE_PITCHSHIFT, &dsp);
    FMOD_System_CreateSound(system, "C:/Users/Coder/Desktop/Central park.mp3", FMOD_LOOP_OFF | FMOD_2D, nullptr, &sound);
    FMOD_System_PlaySound(system, sound, nullptr, false, &channel);
    sleep(2);
    FMOD_Channel_SetPitch(channel, 1.2f);
    FMOD_DSP_SetParameterFloat(dsp, 0, 1/1.2f);
    FMOD_Channel_AddDSP(channel, 0, dsp);
    sleep(2);
    FMOD_Channel_SetPitch(channel, 1.4f);
    FMOD_DSP_SetParameterFloat(dsp, 0, 1/1.4f);
    FMOD_Channel_AddDSP(channel, 0, dsp);
    sleep(2);
    FMOD_Channel_SetPitch(channel, 1.6f);
    FMOD_DSP_SetParameterFloat(dsp, 0, 1/1.6f);
    FMOD_Channel_AddDSP(channel, 0, dsp);

}

Это простой код, который изменяет скорость воспроизведения звука каждые 2 секунды во время воспроизведения. Скорость воспроизведения меняется нормально, как и ожидалось, но каждый раз, когда я меняю скорость воспроизведения, происходит небольшая остановка (технически, функция FMOD_Channel_AddDSP останавливает звук) Есть ли способ удалить его, чтобы музыка воспроизводилась без остановки?

...