2012-04-26 183 views
0

我必须背对背播放两个音频文件。 我有一个通用文件,它说: “我的名字是”在MPMoviePlayerController中播放音频

然后跟随另一个音频文件,其中有另一个音频字符串。

例如:说a.mp3有 “我的名字是” b.mp3有 “约翰”

但是,当我设置的MPMoviePlayerController的的contentURL。它跳过第一个音频并播放第二个音频。

这里是我的代码:

- (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]; 
} 

但是当我运行的代码,唯一的“约翰”被播放。

调试完代码后,我看到音频在执行完整个函数后开始播放,因此很显然“约翰”是从最后设置开始播放的。但是有没有办法阻止这种行为?

回答

0

试试这个链接的MPMoviePlayerController播放

下面的代码播放MpMoviePlayer与nodification:

 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..!"); 
    } 

谢谢....!

+0

谢谢,但链接是为MPMusicPlayerController – krammer 2012-04-26 13:00:36

+0

好吧,现在我更新答案...! – Dinesh 2012-04-26 13:04:34

+0

我更新的答案试试这个..! – Dinesh 2012-04-26 13:11:42

相关问题