想象一下这样的功能:如何不止一次跳转到特定偏移量?
void SoundManager::playSource(ALuint sourceID, float offset)
{
alSourceStop(sourceID);
ALint iTotal = 0;
ALint iCurrent = 0;
ALint uiBuffer = 0;
alGetSourcei(sourceID, AL_BUFFER, &uiBuffer);
alGetBufferi(uiBuffer, AL_SIZE, &iTotal);
iCurrent = iTotal * offset;
alSourcei(sourceID, AL_BYTE_OFFSET, iCurrent);
alSourcePlay(sourceID);
}
的想法是调用playSource(x, 0.5f)
会跳转到(大约)中途缓冲等
它工作正常,我第一次称呼它,但如果我把它再次在相同的来源(不管该来源是否在播放),它开始播放,就好像我用偏移0调用它一样。
任何想法为什么?