【问题标题】:iPhone: Play audio and video simultaneouslyiPhone:同时播放音频和视频
【发布时间】:2011-07-15 13:24:29
【问题描述】:

我正在构建一个游戏应用程序,我需要在其中播放动画视频及其相应的声音(可能因情况而异)。我已准备好所有视频和声音文件,但我无法同时播放它们。我正在使用 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];

谢谢。

【问题讨论】:

  • 取决于您使用 AVFoundation 的方式。要发布一些代码吗?
  • 请查看已编辑的问题。谢谢!

标签: iphone avfoundation mpmovieplayer


【解决方案1】:

我个人会走 AVPlayer 路线。我知道您可能想要使用 MPMoviePlayerViewController 和 AVAudioPlayer,但如果您只是在 AVMutableComposition 上投入更多时间使用 AVPlayer,您可以做任何您正在尝试的事情,甚至更多。值得投资。

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

This post 实际上有一些很好的示例代码,但我不确定他是否可以正常工作。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多