0
私はOpenALで再生するには音が多すぎ、音源の数が多すぎる場合があります。時には、一部の音源を停止する必要があります。alSourceStop関数を使用します。 )、この現象を避けるには?音を止める方法OpenALでスムースする
私はOpenALで再生するには音が多すぎ、音源の数が多すぎる場合があります。時には、一部の音源を停止する必要があります。alSourceStop関数を使用します。 )、この現象を避けるには?音を止める方法OpenALでスムースする
注:私は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の間を直線的に補間し、壊れたサウンドエフェクトを防ぐことができます。
ありがとう、私は私のプロジェクトでそれを試してみます – user7733855
それは動作します!ありがとう、 – user7733855