AVAudioSession密码锁在iOS8上停止AVAudioRecorder
我遇到了与后台录制相关的意外问题(特别是当屏幕被密码锁定时)。总之,我的AVAudioRecorder应用程序在前台、后台(切换应用程序时)和屏幕关闭时(但在激活通行证锁定之前)似乎都能正确录制 如果我延迟密码锁定(设置>密码>要求密码>4小时等),则在前台/后台/应用程序切换/屏幕关闭等情况下录制工作没有问题,但当密码锁定在录制中启动时,录制会损坏 我基本上是使用AVAudioRecorder代码来录制音频,并遵循指导原则,在app.plist中设置“UIBackgroundModes/audio”以确保后台录制,这似乎在后台工作(即出现红色录制条)但当密码激活时失败,即用户按下电源按钮,需要输入密码才能访问设备 我的代码设置为通过“AVAudioSessionInterruptionNotification”处理音频中断,AVAudioSession设置为“带有选项:AVAudioSessionCategoryOptionDuckOthers”,以尽量减少影响后台录制的外部事件 [测试程序]AVAudioSession密码锁在iOS8上停止AVAudioRecorder,ios,objective-c,audio-recording,avaudiorecorder,avaudiosession,Ios,Objective C,Audio Recording,Avaudiorecorder,Avaudiosession,我遇到了与后台录制相关的意外问题(特别是当屏幕被密码锁定时)。总之,我的AVAudioRecorder应用程序在前台、后台(切换应用程序时)和屏幕关闭时(但在激活通行证锁定之前)似乎都能正确录制 如果我延迟密码锁定(设置>密码>要求密码>4小时等),则在前台/后台/应用程序切换/屏幕关闭等情况下录制工作没有问题,但当密码锁定在录制中启动时,录制会损坏 我基本上是使用AVAudioRecorder代码来录制音频,并遵循指导原则,在app.plist中设置“UIBackgroundModes/aud
- 密码锁(iPhone 5/iOS8.1>设置>密码>需要密码>5分钟后)
- [Success-CASE-1]“开始录制”7分钟,保持屏幕打开,应用程序处于活动/可见状态(即开始录制后不在后台运行)>>录制工作,按“停止录制”后,音频保存并可播放
- [Success-CASE-2]“开始录制”7分钟,保持屏幕打开并切换应用程序(即在后台运行,屏幕大部分打开,录制开始后显示红色录制条)>>录制工作,按“停止录制”后,音频保存并可播放
- [故障案例]“开始录制”7分钟,关闭屏幕(即应用程序在后台运行,设备屏幕关闭)>>关闭屏幕7分钟后,当屏幕打开时,设备需要密码。录制意外停止,已损坏,无法播放
- 密码锁(iPhone 5/iOS8.1>设置>密码>需要密码>15分钟后)
- [调整密码锁后重复故障情况]“开始录制”7分钟关闭屏幕(即应用程序在后台运行,设备屏幕关闭)>>关闭屏幕7分钟后,设备打开(这次不需要密码锁)。录音是好的,工作完美,可以播放
谢谢密码锁定时,您的音频文件(沙盒中)可能受iOS保护; 如果屏幕未设置密码而被锁定,则一切正常 请尝试以下方法:
NSDictionary *oldAttr = [[NSFileManager defaultManager]attributesOfItemAtPath:localFilePath error:nil];
NSMutableDictionary *newAttr = nil;
if (oldAttr){
newAttr = [[NSMutableDictionary alloc]initWithDictionary:oldAttr];
}else{
newAttr = [[NSMutableDictionary alloc]init];
}
[newAttr setObject:NSFileProtectionNone forKey:NSFileProtectionKey];
[[NSFileManager defaultManager] setAttributes:newAttr
ofItemAtPath:localFilePath
error:nil];
或者,将证书中的数据保护设置为关闭。Man u救了我的命。。。。感谢您的支持,我们已经搜索了一段时间,以查找此问题的原因!苹果似乎一天比一天更糟糕,甚至没有一条日志消息来描述问题是什么!