我正在使用AVPlayer而没有找到任何方式在后台播放视频.如果有人能帮助我,我将非常感激.
谢谢
此方法支持所有可能性:
>用户锁定的屏幕;
>按下主页按钮;
>切换到其他应用程序.
只要你有一个运行iOS的AVPlayer实例就可以防止设备自动锁定.
首先,您需要配置应用程序以支持Info.pList文件中的音频背景,并在uibackgroundmodes数组中添加audio元素.
然后将您的AppDelegate.m放入 – (BOol)应用程序:(UIApplication *)应用程序dIDFinishLaunchingWithOptions:(NSDictionary *)launchOptions:
这些方法
[[AVAudioSession sharedInstance] setDelegate: self]; [[AVAudioSession sharedInstance] setcategory:AVAudioSessioncategoryPlayback error:nil];
和#import< AVFoundation / AVFoundation.h>
然后在控制AVPlayer的视图控制器中
-(voID)vIEwDIDAppear:(BOol)animated{ [super vIEwDIDAppear:animated]; [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; [self becomeFirstResponder];}
和
- (voID)vIEwWilldisappear:(BOol)animated{ [mPlayer pause]; [super vIEwWilldisappear:animated]; [[UIApplication sharedApplication] endReceivingRemoteControlEvents]; [self resignFirstResponder];}
然后回应
- (voID)remoteControlReceiveDWithEvent:(UIEvent *)event { switch (event.subtype) { case UIEventSubtypeRemoteControlTogglePlayPause: if([mPlayer rate] == 0){ [mPlayer play]; } else { [mPlayer pause]; } break; case UIEventSubtypeRemoteControlPlay: [mPlayer play]; break; case UIEventSubtypeRemoteControlPause: [mPlayer pause]; break; default: break; }}
如果用户按下主页按钮,则需要另一个技巧来恢复再现(在这种情况下,再现以淡出暂停).
当你控制视频的再现(我有播放:和暂停:方法)设置
[[NSNotificationCenter defaultCenter] addobserver:self selector:@selector(applicationDIDEnterBackground:) name:UIApplicationDIDEnterBackgroundNotification object:nil];
和
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDIDEnterBackgroundNotification object:nil];
以及将启动计时器并恢复再现的相应方法.
- (voID)applicationDIDEnterBackground:(NSNotification *)notification{ [mPlayer performSelector:@selector(play) withObject:nil afterDelay:0.01];}总结
以上是内存溢出为你收集整理的ios – 使用Avplayer在后台播放视频全部内容,希望文章能够帮你解决ios – 使用Avplayer在后台播放视频所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)