2017-11-20 14 views
0

私はOpenALで再生するには音が多すぎ、音源の数が多すぎる場合があります。時には、一部の音源を停止する必要があります。alSourceStop関数を使用します。 )、この現象を避けるには?音を止める方法OpenALでスムースする

答えて

0

注:私はiOSデベロッパーではなく、ほかのプラットフォームで使用していたソリューションを示しています。

音源のゲインを段階的に変更することで、フェードアウトすることができます。 基本的に、それはあなたがこの擬似コードoriginalGain

float t = now - stopTime; 
float d = 10 
if(t > d) 
    //Stop sound and delete source 
else 
    alSourcef(source, AL_GAIN, originalGain * (1F - t/d)) 

をしなければならないものだがフェードアウト

nowせずに元のゲインである - 現在の時刻 stopTime - あなたがソース 10を停止することを決めた瞬間 - 期間フェードアウトの

これらの値を使用すると、完全なゲインと0の間を直線的に補間し、壊れたサウンドエフェクトを防ぐことができます。

+0

ありがとう、私は私のプロジェクトでそれを試してみます – user7733855

+0

それは動作します!ありがとう、 – user7733855