在MPMoviePlayerController中播放背靠背音频

时间:2012-04-26 12:41:01

标签: objective-c ios ios4 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];
}

但是当我运行代码时,只播放“John”。

调试完代码后,我看到音频在执行整个功能后开始播放,因此很明显“John”在最后设置后播放。但有没有办法防止这种行为?

1 个答案:

答案 0 :(得分:0)

尝试使用此链接进行MPMoviePlayerController播放

下面的代码播放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..!");
     }

...谢谢!