【发布时间】:2013-11-25 21:25:17
【问题描述】:
我的应用中有一个视图,它初始化 AVCaptureSession 的一个实例,在屏幕上显示视频预览,并在按下按钮时开始录制。在 iPad 上它可以正常工作,但在 iPhone 上它偶尔会无法加载捕获会话;不会有视频预览,如果按下录制按钮,它会跳过录制并立即执行
- (void)captureOutput:(AVCaptureFileOutput *)captureOutput
didFinishRecordingToOutputFileAtURL:(NSURL *)outputFileURL
fromConnections:(NSArray *)connections
error:(NSError *)error
方法。在最近的 iOS 更新之一中,音频捕获存在问题,我通过添加修复了该问题
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
[audioSession setActive:YES error:nil];
到音频会话设置。既然我已经这样做了,iPhone 上的捕获会话加载问题就变得一致了。在应用启动时,第一次加载视图的尝试总是会失败,Xcode 会给出这样的输出:
_serverConnectionDiedNotification. Info -- notification=Error
Domain=AVFoundationErrorDomain Code=-11819 "Cannot Complete Action"
UserInfo=0x14679150 {NSLocalizedRecoverySuggestion=Try again later.,
NSLocalizedDescription=Cannot Complete Action},
AVPlayer = <MPQueuePlayer: 0x1458aa80>, currentTime = nan
如果我从该视图返回菜单,然后再次尝试加载该视图,则以后每次尝试加载它都会成功;这只是第一次尝试加载失败的视图。我查看了错误代码,但它是一个相当不具体的“AVErrorMediaServicesWereReset”,它并没有告诉我太多。在我寻找答案的过程中,我看到这个错误代码是针对其他问题而引发的,但对于我的具体问题却没有。我认为它与音频有关,因为一旦我改变它就变得一致了,但我不确定我能做些什么。
【问题讨论】:
标签: objective-c cocoa-touch avfoundation