2

I'd like to fade-out the sound played by MPMusicPlayerController over a particular time period? How can I do this?

SundayMonday
  • 19,147
  • 29
  • 100
  • 154
Ali
  • 10,774
  • 10
  • 56
  • 83

1 Answers1

6

There is no fade functionality so you have to implement it yourself. Loop until volume is 0, and add a delay for each step. If you want all this to happen 2 seconds into the future, put the code on a block:

MPMusicPlayerController *iPod = [MPMusicPlayerController iPodMusicPlayer];

int64_t delay = 2LL * NSEC_PER_SEC;
dispatch_after(dispatch_time(DISPATCH_TIME_NOW,delay), dispatch_get_current_queue(), ^{
    while (iPod.volume>.1){
        iPod.volume -= .1;
        [NSThread sleepForTimeInterval:0.1];
    }
});
Jano
  • 62,815
  • 21
  • 164
  • 192