OpenAL 从某个时间戳播放音频

OpenAL playing audio from certain timestamp

我正在用 C++ 为我的游戏引擎编写一个对话系统。为了将对话组合在一起,我将不同的对话部分放在一个文件和一个缓冲区中。因此,我如何告诉 OpenAL 从特定时间(或采样对我来说并不重要)播放缓冲区到缓冲区。提前感谢您的帮助!

void PlayFromSpecifiedTime(ALfloat seconds) const
{
    alSourcef(source, AL_SEC_OFFSET, seconds);
    alSourcePlay(source);
}

或者,如果您想从缓冲区中的某个样本播放:

void PlayFromSpecifiedSample(ALint sample) const
{
    alSourcei(source, AL_SAMPLE_OFFSET, sample);
    alSourcePlay(source);
}

您还可以在开头添加一个检查,看看您是否不想跳到超出缓冲区总量的特定时间(或样本)。如果是这样,您只需 return; 即可。这假设您知道自己在做什么。