0

iOS で openAL ラッパーを使用しておりFinch、自分の をフェードアウトしたいと考えていFISoundます。

30 秒のサウンドがあるとします。たとえば、15 秒後に 5 秒かけてサウンドをフェードアウトできるようにしたいと考えています。

可能であれば、openAL にドロップダウンすることは避けたいと思います。

4

1 に答える 1

2

NSTimerサウンド ゲインをゼロになるまで繰り返し減少させる を設定します。または、次のようにすることもできます。

static const float FadeStep = 0.1;
static const NSTimeInterval FadeDelay = 0.1;

@implementation FISound

- (void) fadeOut
{
    self.gain = MAX(0, self.gain - FadeStep);
    if (self.gain > 0) {
        [self performSelector:_cmd afterDelay:FadeDelay withObject:nil];
    }
}

@end

これは簡単で汚い解決策ですが、多くの場合はうまくいくはずです。

于 2012-10-11T07:20:35.897 に答える