iOS: как остановить фоновую музыку всего одной кнопкой? - PullRequest
0 голосов
/ 07 декабря 2011

У меня есть музыкальная кнопка в главном пользовательском интерфейсе iOS, и я хочу, чтобы эта кнопка выполняла функцию кнопки остановки музыки и в то же время могла снова воспроизводить музыку.Моя проблема в том, что я могу только остановить музыку, но больше не могу ее играть.Вот мой код iOS в xcode4.Как определить одну кнопку для кнопки воспроизведения и остановки музыки?Я назначил одну кнопку для stopMusic и playMusic, но она не работает.

- (IBAction)stopMusic{  
    self.playBgMusic.enabled = YES;
    [self.player stop];

}

- (IBAction)playMusic{

    self.playBgMusic.enabled = YES;
    [self.player play];

}


// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad
{

    NSString *path = [[NSBundle mainBundle] pathForResource:@"music" ofType:@"mp3"];
    self.player=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL]; 
    player.delegate = self;
    [player play];
    player.numberOfLoops = -1;
    [super viewDidLoad];
}

1 Ответ

0 голосов
/ 07 декабря 2011

Вместо того, чтобы иметь одну кнопку, попробуйте отправить два разных сообщения (stopMusic, playMusic), пусть она отправляет toggleMusic каждый раз.Затем метод toggleMusic может останавливать или воспроизводить музыку в зависимости от текущего состояния проигрывателя.

   - (IBAction)toggleMusic{  
        if ([self.player isPlaying] == YES) {
         [self.player stop];
        } else {
         [self.player play];
        }
        self.playBgMusic.enabled = YES;

    }
...