Воспроизведение аудио с одновременным воспроизведением в MPMoviePlayerController

Мне нужно воспроизвести два аудиофайла подряд. У меня есть общий файл, в котором написано: «Меня зовут»

затем следует другой аудиофайл, который имеет другую звуковую строку.

Например: скажем, в a.mp3 есть "Меня зовут" b.mp3 есть "Джон".

Но когда я устанавливаю contentURL для MPMoviePlayerController. Он пропускает первый звук и воспроизводит второй звук.

Вот мой код:

- (void) playPromptAudio
{[appDelegate.globalPlayer setContentURL:[NSURL 
             URLWithString:@"http://localhost/a.mp3"]];

    [appDelegate.globalPlayer prepareToPlay];
    [appDelegate.globalPlayer play];

    while (appDelegate.globalPlayer.playbackState == MPMoviePlaybackStatePlaying ) {
        // dirty hack, do gracefully
        // do nothing
    }

    [appDelegate.globalPlayer setContentURL:[NSURL URLWithString:@"http://localhost/b.mp3"]];
        [appDelegate.globalPlayer prepareToPlay];
    [appDelegate.globalPlayer play];
}

Но когда я запускаю код, воспроизводится только «Джон».

После отладки кода я вижу, что звук начинает воспроизводиться после выполнения всей функции, поэтому очевидно, что «Джон» воспроизводится, так как он установлен последним. Но есть ли способ предотвратить такое поведение?


person krammer    schedule 26.04.2012    source источник


Ответы (1)


Попробуйте эту ссылку для воспроизведения MPMoviePlayerController

Ниже код Play MpMoviePlayer с нодификацией:

        NSURL *url = [NSURL fileURLWithPath:filePath isDirectory:NO];
        self.moviePlayer = [[[MPMoviePlayerController alloc] initWithContentURL:url]
                    autorelease];
        moviePlayer.shouldAutoplay = NO;
        moviePlayer.view.frame = view_video.bounds;
        moviePlayer.scalingMode= MPMovieScalingModeFill;
        moviePlayer.controlStyle =MPMovieControlStyleNone;
        [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:nil];
        [[NSNotificationCenter defaultCenter] addObserver:self 
                                                 selector:@selector(doneButtonClick:) 
                                                     name:MPMoviePlayerPlaybackDidFinishNotification 
                                                   object:nil];
        [moviePlayer Play]; 

функция ниже называется MpMovieplayerController Playbackfinished:

     -(void)doneButtonClick:(NSNotification*)aNotification{
        NSLog(@"MPMoviePlayer is finished..!");
     }

Спасибо....!

person Dinesh    schedule 26.04.2012