ios-后台播放视频、直播流
2017-08-29 本文已影响435人
Mark_大东
关于ios-后台播放
- 后台播放的不是新的技术;
- 后台播放在音乐播放器上得到了广泛的运用;
- 想了解和实现的原因:看到B站的视频mp4,直播流都可以后台播放(ps:音频);
- 从开发者角度来说不是都会遇见这样的功能,仅做积累;
了解Background Modes后台模式、从固件获取信息
- Background Modes提供的功能有:实现播放声音、提供位置信息、远程推送、提供Voice-over-IP服务从固件获取信息等;
- 针对这篇文章关注:Audio.Airplay and Picture in Picture,后台播放视频,直播流(ps:音频)
后台播放代码实现
- (void)applicationWillResignActive:(UIApplication *)application {
// *让app接受远程事件控制,及锁屏是控制版会出现播放按钮
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
// *后台播放代码
AVAudioSession*session=[AVAudioSession sharedInstance];
[session setActive:YES error:nil];
[session setCategory:AVAudioSessionCategoryPlayback error:nil];
}
关于后台长时间播放的问题
- app的后台运行时间是有限的;
- 耗尽之前没有调用endBackgroundTask:方法来结束相应的后台任务,系统就会杀掉这个app;
UIBackgroundTaskIdentifier bgTaskIdentifier;
// *手动调用该方法
bgTaskIdentifier = [application beginBackgroundTaskWithExpirationHandler:^{
//标记指定的后台任务完成
[[UIApplication sharedApplication]endBackgroundTask:bgTaskIdentifier];
//销毁后台任务标识符
bgTaskIdentifier=UIBackgroundTaskInvalid;
}];
[TOC]