0

私はループサウンドを開始するためにこのようなものを使用しています:

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

もう一度、再起動します。最後の再生後にサウンドが再起動しないことを除いて、すべてが期待どおりに機能します。誰でもこれを引き起こす原因を知っていますか? または私が何か間違ったことをした場合は?

ありがとう。

4

1 に答える 1

0

ソースを削除しても、minDistance、maxDistance、ピッチ修飾子などのパラメータがどこかに保存されているようです (新しいソースを作成すると、以前に設定したパラメータの一部が設定されている場合があります)。そのため、ソースを作成した直後にすべてを設定するのが最善の方法です。

于 2013-08-20T15:14:21.250 に答える