Исчезающие звуки при использовании зяблика в 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
Это быстрое и грязное решение, но оно должно работать нормально во многих случаях.