【问题标题】:Using AVAudioPlayer and MPMoviePlayerController simultaneously同时使用 AVAudioPlayer 和 MPMoviePlayerController
【发布时间】:2009-08-07 04:45:07
【问题描述】:

我需要同时使用 AVAudioPlayerMPMoviePlayerController,即可以在播放背景循环的同时播放电影。
当电影开始播放时,我的 bg 音乐循环停止工作,所以我尝试停止 bg 音乐循环并开始播放电影,当电影停止时,再次开始播放 bg 循环,但这也不起作用。

【问题讨论】:

  • 如果是,应该如何使用 AudioQueue 来完成?我是 iPhone 新手,理解 AudioQueue 文档对我来说真的很困难。
  • 好吧我的错误是停止和播放 AVAudioPlayer 在开始和停止电影之前确实有效,但是如果是这样的话,真的不可能同时使用 AVAudioPlayer 和 MPMoviePlayerController 吗?

标签: iphone


【解决方案1】:

事实上,从 3.x 开始就可以实现。我曾经在我的一个应用程序中这样做过,它与任何后台或任何其他新的 iOS 功能无关。您只需要正确配置音频会话。如果您确保您的音频播放器和视频播放器都在使用环境音频会话,这是可能的。

在开始您的AVAudioPlayer 播放之前,将音频会话的类别设置为AVAudioSessionCategoryAmbient。这是系统范围的通用音频会话。这允许其他声音一起播放,例如来自 iPod 应用程序的声音。

如果您在 iOS 3.2 或更高版本中使用 MPMoviePlayerController,请确保将 useApplicationAudioSession 设置为 NO。这可以确保其他声音一起播放。这是早期 iOS 版本中的默认设置。

【讨论】:

  • 嘿,它成功了,谢谢。如果有人想知道如何设置音频会话类别,请使用它。 [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryAmbient error: nil];
【解决方案2】:

当前的 iPhone SDK(2.x 和 3.x)存在一个限制,不允许在 MPMoviePlayerController API 中播放电影时播放任何背景音频。不幸的是,目前无法在 iPhone SDK 中执行您所要求的操作。

我会向 Apple 建议 logging an enhancement request 在 SDK 的未来版本中提供此功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-06
    • 2011-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-09
    相关资源
    最近更新 更多