iPhone:同时播放音频和视频

时间:2011-07-15 13:24:29

标签: iphone avfoundation mpmovieplayer

我正在构建一个游戏应用程序,我需要播放动画视频及其相应的声音(根据情况可能会有所不同)。我已准备好所有视频和声音文件,但我无法同时播放它们。我正在使用MPMoviePlayer进行视频和AVFoundation框架来播放音频。无论如何都要同时运行这两个?

视频:

        MPMoviePlayerViewController *videoController = [[[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL URLWithString:[cellDetails objectForKey:@"AVFile"]]] autorelease];
        [self presentMoviePlayerViewControllerAnimated:videoController];

声音:

 // Instantiates the AVAudioPlayer object, initializing it with the sound
AVAudioPlayer *newPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL: soundFileURL error: nil];
self.appSoundPlayer = newPlayer;
[newPlayer release];

[appSoundPlayer prepareToPlay];

appSoundPlayer.numberOfLoops = -1;
[appSoundPlayer setVolume: self.soundLevel];
[appSoundPlayer setDelegate: self];
[appSoundPlayer play];

感谢。

2 个答案:

答案 0 :(得分:1)

我个人会去AVPlayer路线。我知道你可能想要使用MPMoviePlayerViewController和AVAudioPlayer,但是如果你只需要花费更多的时间在AVMlayer的AVMutableComposition上,你可以做你正在尝试的所有事情。这非常值得投资。

简而言之,您将使用曲目设置AVMutableComposition(也被视为“资产”)。这些轨道对应于音频和视频轨道。可以从其他文件的全部或部分中拉出曲目,也可以根据需要插入空的音频/视频曲目部分。您将在视频轨道上放置视频,并在单独的音轨上放置任意数量的音频文件。然后使用AVMutableComposition创建一个AVPlayer对象并调用“播放”消息。它非常精确地为您完成所有同步。

This post实际上有一些很好的示例代码,但我不确定他是否能正常使用它。

答案 1 :(得分:0)

您可以尝试使用AVMutableVideoComposition。试着看看this thing,如果您需要任何帮助,请告诉我。我很乐意帮忙。