Звук воспроизводится дважды при нажатии кнопки домой - PullRequest
0 голосов
/ 20 января 2011

Привет, ребята, я занимаюсь разработкой электронных книг. Есть несколько аудиофайлов, которые необходимо воспроизвести после нажатия на значок. Звук просто воспроизводится нормально в первый раз ... Но, когда я нажимаю кнопку "домой" приложения и возвращаюсь в аудиоплеер, звук воспроизводится дважды ... Число увеличивается на 1 каждый раз, когда я нажимаю кнопку home и вернитесь к аудиоплееру .... Пожалуйста, помогите мне с вашими входами .... отладкой я обнаружил, что этот цикл выполняется несколько раз ... Может кто-нибудь сказать мне причину этого ??

-(void)StartPlayingFileWithNotification:(NSNotification *)notifcation{
// Load the array with the sample file
NSString *f = [[notifcation userInfo] valueForKey:@"audiopath"];
NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: f];
if(fileURL == nil){
    GLogError(@"%@",@"File Not Found");
    return;
}else {
    GLogInfo(@"%@",@"Got audio file");
}
if (self.player != nil) {
    if (self.player.playing) {
        [self.player stop];
    }
    [player release];
    player = nil;
}

self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:nil];  
if (self.player)
{
    fileName.text = [NSString stringWithFormat: @"%@ (%d ch.)", [[player.url relativePath] lastPathComponent], player.numberOfChannels, nil];
    [self updateViewForPlayerInfo:player];
    player.numberOfLoops = 0;
    player.delegate = self;
    [player play];
    [self updateViewForPlayerState:player];
}
[fileURL release];

}

1 Ответ

0 голосов
/ 21 января 2011

Звучит так, будто вы создаете новые представления (или другие объекты), содержащие ваш аудиоплеер, без проверки того, запущен ли предыдущий.Вы можете либо проверить активацию, прежде чем создавать другую, или очистить старую, когда приложение уйдет в активное состояние.

...