暂停后Iphone OpenAL循环声音没有重启

时间:2013-08-11 12:04:18

标签: iphone loops audio restart openal

我正在使用这样的东西来启动循环声音:

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

再次重启它。一切都按预期工作,除了声音在最后一次播放后没有重新开始。任何人都知道是什么原因引起的?或者如果我做错了什么?

感谢。

1 个答案:

答案 0 :(得分:0)

我发现了这个问题,似乎即使我删除了源码,minDistance,maxDistance,pitch修饰符和其他参数都保存在某处(当我创建新源时,有时会设置一些先前设置的参数)。 因此,最好的方法是在创建源之后设置好所有内容。