Остановка звука после воспроизведения с AVAudioPlayer - PullRequest
0 голосов
/ 18 февраля 2011

Привет, ребята, надеюсь, вы все можете помочь мне с этой проблемой.

Что я хотел бы сделать, это когда пользователь оставил вид B для просмотра A, звук воспроизводится, когда пользователь оставил вид A для просмотра B,звук останавливается.

, поэтому, когда пользователь покинул представление B (удаляя представление B из суперпредставления) назад к основному представлению, которое является представлением A, будут вызваны методы playIT & hahaPlay.Когда пользователь покидает вид от A до вида B (вид A добавляет подпредставление B), вместо этого вызывается метод stopPlaying.Но вот моя проблема, даже вызывается метод stopPlaying, звук не останавливается.Я понял, что предупреждение показывается, но по какой-то причине оператор> [audioPlayer stop]; не работает.

Я уже определил аудиопроигрыватель в заголовочном файле только для справки.

Все методы ниженаходятся в viewcontroller, называемом soundView.

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

-(void)playIT{

    filePath = [[NSBundle mainBundle] pathForResource:@"6431" 
                                               ofType:@"aiff"];
    fileURL = [[NSURL alloc] initFileURLWithPath:filePath];
    audioPlayer = [[AVAudioPlayer alloc] 
                   initWithContentsOfURL:fileURL error:nil];
}

-(void)hahaPlay{

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"playing" message:@" playing" delegate:nil cancelButtonTitle:@"Yep, I did." otherButtonTitles:nil];
    [alert show]; 
    [alert release]; 
    [audioPlayer prepareToPlay];
    if(![audioPlayer isPlaying]){

        [audioPlayer play];
    }

- (void)stopPlaying{
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Stop playing" message:@"Stop playing" delegate:nil cancelButtonTitle:@"Yep, I did." otherButtonTitles:nil];
    [alert show]; 
    [alert release]; 

    [audioPlayer stop];

}

1 Ответ

0 голосов
/ 18 февраля 2011

Возможно, вы теряете ссылку где-то по ошибке, попробуйте установить точку останова рядом со стоп-вызовом и проверить audioPlayer на случай, если audioPlayer равно nil. Просто говорю, потому что обычно это причина большинства проблем такого типа для меня ...

Также будут работать следующие?

[audioPlayer pause]
audioPlayer.currentTime = 0;
...