iOS AVPlayer 后台播放问题自动停止问题 防止应用被后台挂起方法
2016-09-08 16:16 1597人阅读 评论(0) 收藏 举报
分类:
iOS 开发笔记(37)
版权声明:本文为博主原创文章,未经博主允许不得转载。
1、创建播放器时创建AVAudioSession
[objc] view plain copy
- AVAudioSession *session = [AVAudioSessionsharedInstance];
- [session setCategory:AVAudioSessionCategoryPlaybackerror:nil];
- [session setActive:YES error:nil];
2、在plist文件中添加字段
Required background modes
在这里添加后台播放:
App plays audio or streams audio/video using AirPlay
3、在设备将要挂起app时添加下面代码
[objc] view plain copy
- - (void)applicationWillResignActive:(UIApplication *)application {
- if ([MediaPlayerplayer].playStatus == MediaPlayerPlayStatusPlaying) {
- UIDevice* device = [UIDevicecurrentDevice];
- if ([devicerespondsToSelector:@selector(isMultitaskingSupported)]) {
- if(device.multitaskingSupported) {
- if(device.multitaskingSupported) {
- if ([MediaPlayerplayer].bgTaskId ==UIBackgroundTaskInvalid) {
- [MediaPlayerplayer].bgTaskId = [[UIApplicationsharedApplication]beginBackgroundTaskWithExpirationHandler:NULL];
- }
- }
- }
- }
- }
- }
在设备进入前台时添加下面代码
[objc] view plain copy
- if ([MediaPlayerplayer].bgTaskId !=UIBackgroundTaskInvalid) {
- [[UIApplicationsharedApplication]endBackgroundTask:[MediaPlayerplayer].bgTaskId];
- [MediaPlayerplayer].bgTaskId =UIBackgroundTaskInvalid;
- }
使用这三步基本可以保证在后台的长时间播放问题,且不会因为后台挂起APP导致的播放停止问题。
时间: 2024-11-03 03:33:05