如何在iOS设备锁定或其他应用程序时处理后台音频播放?

glu*_*uon 22 audio background locked multitasking ios

使用OpenFrameworks为iOS设计生成音乐系统时,我需要提供一种模式,用户可以在以下情况下收听应用程序生成的音乐:

  • 设备已锁定
  • 用户使用另一个应用程序

一些应用程序,如BLOOM或闹钟,就像这样,并向用户建议一个开关来启用/禁用此功能.

有什么提示吗?

Dan*_*eel 35

播放背景音频

连续播放或录制音频的应用程序(即使应用程序在后台运行)也可以注册以在后台执行这些任务.您可以从Xcode项目的Capabilities选项卡的Background modes部分启用音频支持.(您还可以通过在应用程序的Info.plist文件中包含带有音频值的UIBackgroundModes键来启用此支持.)在后台播放音频内容的应用程序必须播放可听内容而不是静音.

Apple参考"播放和录制背景音频"

屏幕锁定时确保音频继续

为了启用/禁用此功能,我找到了激活和取消激活你的音频会话,我自己没有尝试过,但它看起来像你需要的.

  • 这个答案中的第二个链接是404,我认为它应该指向这里:https://developer.apple.com/library/ios/qa/qa1626/_index.html (2认同)

小智 29

您需要在plist文件中进行一些更改.

即1)将所需的背景模式设置为App播放音频

2)设置应用程序不在后台运行到NO.

 NSError *setCategoryErr = nil;
 NSError *activationErr  = nil;
 [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error:&setCategoryErr];
 [[AVAudioSession sharedInstance] setActive:YES error:&activationErr];
Run Code Online (Sandbox Code Playgroud)

然后,您需要在AppDelegate中编写这么多代码

现在,您可以在手机屏幕锁定或进入后台时轻松运行音频.

  • "应用程序不在后台运行"应设置为"NO" (6认同)
  • 这很好,谢谢.我还需要设置功能>背景模式>音频和AirPlay (2认同)