0

我试图让 的音量AVAudioPlayer随着时间的推移而振荡。

例如:每 10 秒,将音量调到 0.5,然后调到 1.0,等等。

我试过使用 anNSTimer但它只在第一次工作并且不循环。

    oscillateTimer = [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(oscillateRun) userInfo:nil repeats:YES];

oscillateRun function

    - (void)oscillateRun {

    BOOL oscillation;
    oscillation = NO;

        if(oscillation = YES) {
            oscillation = NO;
            audioPlayer.volume = 0.50;
        }
        else {
            oscillation = YES;
            audioPlayer.volume = 1;
        }

}

不知道怎么办,提前谢谢!

4

1 回答 1

0

problem是每次您创建新的 bool 变量时,每次都需要 NO,这就是为什么值没有变化的AVPlayer.

全局创建振荡对象,

 BOOL oscillation;

像这样调用这个方法

  [self oscillateRun]; 

 - (void)oscillateRun {

            if(oscillation == YES) {
                oscillation = NO;
                [audioPlayer setVolume : 0.50];
            }
            else {
                oscillation = YES;
                [audioPlayer setVolume : 1.0];
            }
    [NSTimer scheduledTimerWithTimeInterval:10.0 target:self selector:@selector(oscillateRun) userInfo:nil repeats:YES];
    }

编辑:-

for camparing the two variables use '==' change this one in if condition then it'l works fine.
于 2013-05-07T04:53:54.270 回答