我必须背靠背播放两个音频文件。 我有一个通用文件说: “我的名字是”
然后是另一个音频文件,它有另一个音频字符串。
例如:说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”在最后设置后播放。但有没有办法防止这种行为?
答案 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..!");
}
...谢谢!