AVAudioPlayer постепенно исчезают объем

Я использую одну тонкую технику:

я установил уровень предупреждений в проекте, о котором сообщат как ошибки. И наш Непрерывный Сервер интеграции создает целое решение наряду с документацией XML на каждого ckeck-в.

, Если разработчики не пишут комментарии, сбои сборки! И после этого, они должны записать комментарии, так через некоторое время, они привыкли к нему.

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

47
задан Nifle 4 January 2010 в 10:56
поделиться

2 ответа

Как насчет этого: (если время прошло отрицательно, то звук исчезнет, ​​в противном случае исчезнет)

- (void) fadeInOutVolumeOverTime: (NSNumber *)time
{
#define fade_out_steps  0.1
    float           theVolume = player.volume;
    NSTimeInterval  theTime = [time doubleValue];
    int             sign = (theTime >= 0) ? 1 : -1;

// before we call this, if we are fading out, we save the volume
// so that we can restore back to that level in the fade in
    if ((sign == 1) &&
            ((theVolume >= savedVolume) ||
                            (theTime == 0))) {
        player.volume = savedVolume;
    }
    else if ((sign == -1) && (theVolume <= 0)) {
        NSLog(@"fading");
        [player pause];
        [self performSelector:@selector(fadeInOutVolumeOverTime:) withObject:[NSNumber numberWithDouble:0] afterDelay:1.0];

    }
    else {
        theTime *= fade_out_steps;
        player.volume = theVolume + fade_out_steps * sign;
        [self performSelector:@selector(fadeInOutVolumeOverTime:) withObject:time afterDelay:fabs(theTime)];
    }
}
1
ответ дан 26 November 2019 в 19:10
поделиться

Вот как я это делаю:

-(void)doVolumeFade
{  
    if (self.player.volume > 0.1) {
        self.player.volume = self.player.volume - 0.1;
        [self performSelector:@selector(doVolumeFade) withObject:nil afterDelay:0.1];       
     } else {
        // Stop and get the sound ready for playing again
        [self.player stop];
        self.player.currentTime = 0;
        [self.player prepareToPlay];
        self.player.volume = 1.0;
    }
}
120
ответ дан 26 November 2019 в 19:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: