Исчезающие звуки при использовании зяблика в iOS

Я использую Finch openAL обертка в iOS и хотел бы исчезнуть мой FISound"S.

Предположим, у меня есть 30-секундный звук, и я бы хотел, чтобы звук мог исчезать в течение 5 секунд, например, через 15 секунд.

Я хотел бы избежать опускания в openAL для этого, если это возможно.

1 ответ

Решение

Настроить 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

Это быстрое и грязное решение, но оно должно работать нормально во многих случаях.

Другие вопросы по тегам