Выполнение действия в фоновом режиме и не отпускание его - PullRequest
0 голосов
/ 07 октября 2011

У меня есть IBaction, когда пользователь нажимает на IBaction, воспроизводится звук. Пользователь может включать и выключать звук нажатием кнопки. Нажмите кнопку один раз, чтобы включить звук, затем нажмите ее снова, чтобы отключить звук. Он отлично работает в одном контроллере вида. Однако это моя проблема. У меня есть 2 вида, и как только пользователь воспроизводит звук и хочет перейти к другому виду, звук по-прежнему воспроизводится один раз на другом экране, но если он хочет остановить звук, ему придется вернуться к виду, который содержит звук, но проблема в том, что создан новый аудио сеанс, означающий, что существующий звук не может быть отключен. Кто-нибудь знает как это сделать

Вот код:

- (IBAction)twoSound:(id)sender; {
    if (ButtonAlReadyClicked == 1) 
    {
        ButtonAlReadyClicked = 2;

        [sender setBackgroundImage:[UIImage imageNamed:@"z2.png"] forState:UIControlStateNormal];

    }
    else if (ButtonAlReadyClicked == 2) 
    {
        ButtonAlReadyClicked = 1;

        [sender setBackgroundImage:[UIImage imageNamed:@"z1.png"] forState:UIControlStateNormal];

    } 
    if (twoAudio && twoAudio.playing) {
        [twoAudio stop];
        [twoAudio release];
        twoAudio = nil;
        return;
    }    
    NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"mp3"];
    if (twoAudio) [twoAudio release];
    NSError *error = nil;
    twoAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:&error];
    if (error)
        NSLog(@"%@",[error localizedDescription]);
    twoAudio.numberOfLoops = -1;
    twoAudio.delegate = self;
    [twoAudio play];    


}

-(IBAction)goMain:(id)sender; {

      [self dismissModalViewControllerAnimated:YES];
}

1 Ответ

0 голосов
/ 07 октября 2011

Я бы создал отдельный класс, в котором хранится и отслеживается ваше аудио.Добавьте к этому классу синглтон и метод для переключения звука.Таким образом, только один экземпляр класса, управляющий музыкой, доступен для всего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...