【发布时间】:2014-01-15 06:07:52
【问题描述】:
我必须使用 avplayer 播放 mp3 文件,但是当我进入后台时它会停止,我如何让它在后台状态下播放。任何建议将不胜感激。 谢谢。
【问题讨论】:
标签: iphone ios7 xcode4 avplayer avaudiosession
我必须使用 avplayer 播放 mp3 文件,但是当我进入后台时它会停止,我如何让它在后台状态下播放。任何建议将不胜感激。 谢谢。
【问题讨论】:
标签: iphone ios7 xcode4 avplayer avaudiosession
在您的 plist 中只需添加一种方法,例如:-
或者在代码中:
<key>UIBackgroundModes</key>
<array>
<string>audio</string>
</array>
【讨论】:
要在后台播放 AVPlayer,您必须按照以下步骤操作:
1) to add "Required background modes" property in info.plist,with value "App plays audio or streams audio/video using AirPlay"
2)to import below in AppDelegate.h file:
#import <AVFoundation/AVFoundation.h>
#import <AudioToolbox/AudioToolbox.h>
3)in your AppDelegate.m ,
application didFinishLaunchingWithOptions this exactly like below:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
return YES;
}
【讨论】:
您应该阅读Technical Q&A 1668,在 iOS 上使用 AV Foundation 在后台播放媒体。在其中,Apple 提供了如何使用 AVPlayer 在后台播放媒体的示例,并讨论了您可能遇到的潜在问题。
【讨论】:
来自我在评论中发布的文档:
连续播放或录制音频的应用(即使应用在后台运行时)可以注册以在后台执行这些任务。您可以从 Xcode 项目的 Capabilities 选项卡的 Background mode 部分启用音频支持。 (您还可以通过在应用的 Info.plist 文件中包含带有音频值的 UIBackgroundModes 键来启用此支持。)在后台播放音频内容的应用必须播放可听内容而不是静音。
...
当 UIBackgroundModes 键包含音频值时,系统的 媒体框架会自动阻止相应的应用程序 当它移动到后台时被暂停。只要是 播放音频或视频内容或录制音频内容,应用程序 继续在后台运行。但是,如果录制或播放 停止,系统暂停应用程序。
【讨论】: