我正在尝试将一部电影添加到游戏的介绍中。这部电影没有声音/音乐。但是,我确实在后台播放音乐。音乐有点具体,因为音乐的介绍只要电影然后节奏就会更快一点。
我在某些设备上遇到的问题,比如iPod 4G,过早播放音乐,这基本上打破了电影序列。这在我的iPhone 4S中不会发生。
我曾尝试寻找电影开始播放时的某种通知,然后开始播放音乐。我没有成功。
这是我到目前为止所得到的:
-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"SplashVideo" ofType:@"mp4"]]];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerPlaybackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:player];
[[player view] setFrame:CGRectMake(0, 0, 480, 320)];
[player setControlStyle:MPMovieControlStyleNone];
[[self view] addSubview:[player view]];
// play movie
[player play];
//musicPlayer is defined in the header
[self setMusicPlayer:[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"SplashMusic" ofType:@"m4a"]] error:nil]];
[[self musicPlayer] setNumberOfLoops:loop];
[[self musicPlayer] prepareToPlay];
[[self musicPlayer] setDelegate:self];
}
- (void)moviePlayerPlaybackDidFinish:(NSNotification*) aNotification {
DLog(@"**********");
MPMoviePlayerController *player = [aNotification object];
[[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:player];
[player stop];
[[player view] removeFromSuperview];
[player autorelease];
}
在摘要中,在iPhone 4S上它可以完美播放,但在iPod 4G上,音乐会在电影播放前大约2秒钟开始播放,最终导致音频关闭。我该怎么做才能确保电影和音乐同步播放?
我不能做的事,除非另有说服力:
答案 0 :(得分:2)
以下是我遇到过的事情。
我为:MPMoviePlayerLoadStateDidChangeNotification
当调用选择器时,返回MPMovieLoadStatePlaythroughOK
的通知我播放了电影和音轨。
希望这有帮助。