在工作中,我们无法使用alSourcePause()
暂停声音,并且无论如何我们可能希望以偏移量开始声音。
我们通过alSourcei(this->sourceId, AL_SAMPLE_OFFSET, this->sampleOffset);
使用检索到的样本偏移量来执行“恢复” alGetSourcei()
。我们尝试使用AL_SEC_OFFSET
,AL_BYTE_OFFSET
和AL_SAMPLE_OFFSET
-- 无济于事。我们已经读过声源需要处于“初始”状态;重新创建源并附加缓冲区,然后尝试跳过也没有帮助。
将缓冲区更改为跳过AL_BYTE_OFFSET
不是解决方案,因为它会使循环复杂化。
流声音在较慢的机器上跳过;我们在实现多线程播放时遇到了麻烦。
由于我们的日程安排很紧,在 OS X 上的 OpenAL 上跳过部分简单声源的最佳方法是什么?
源代码可在我们的 Sourceforge 存储库中获得。