我正在使用这样的东西来启动循环声音:
if (m_pSource == OS_INVALID_SOUND)
{
alGenSources(1, &m_pSource);AL_CHECK
alSourcei(m_pSource, AL_BUFFER, m_pBuffer);
if (Is3D())
{
SetMinDistance(m_minDistance);
SetMaxDistance(m_maxDistance);
}
if (IsLooping() && !IsStreamming())
{
alSourcei(m_pSource, AL_LOOPING, AL_TRUE);
}
}
if (m_pSource != OS_INVALID_SOUND)
{
alSourcePlay(m_pSource);AL_CHECK
}
然后在某些时候我使用:
alSourcePause(m_pSource);AL_CHECK
停止声音然后:
alSourcePlay(m_pSource);AL_CHECK
再次重启它。一切都按预期工作,除了声音在最后一次播放后没有重新开始。任何人都知道是什么原因引起的?或者如果我做错了什么?
感谢。
答案 0 :(得分:0)
我发现了这个问题,似乎即使我删除了源码,minDistance,maxDistance,pitch修饰符和其他参数都保存在某处(当我创建新源时,有时会设置一些先前设置的参数)。 因此,最好的方法是在创建源之后设置好所有内容。