如何解决在iPad上播放捕获的视频会使我的应用程序崩溃
| 我正在开发ipad 2的应用程序,该应用程序允许用户使用设备前置摄像头录制自己的视频,然后在视频播放器上播放。我的整体功能正常运行,但是有时候,当我加载将要播放视频的视图时,有时我的应用会崩溃,原因是: \'CALayerInvalidGeometry \',原因:\'CALayer位置包含NaN:[nan 11.5] \' 我注意到,当录制的剪辑播放时间少于15秒左右时,应用程序崩溃主要(但不是唯一)。 任何人都知道保存录音的代码是什么: -(void)record{
AVCaptureMovieFileOutput *output = [[AVCaptureMovieFileOutput alloc]init];
NSMutableString *videoURL;
if(isRecording){
//here i do some stuff to generate a random system path
[session addOutput:output];
AVCaptureConnection *videoConnection;
[session beginConfiguration];
for ( AVCaptureConnection *connection in [output connections] ) {
for ( AVCaptureInputPort *port in [connection inputPorts] ) {
if ( [[port mediaType] isEqual:AVMediaTypeVideo] ) {
videoConnection = connection;
}
}
}
if([videoConnection isVideoOrientationSupported]){
[videoConnection setVideoOrientation:AVCaptureVideoOrientationLandscapeLeft];
videoConnection.videoMirrored = true;
}
[session commitConfiguration];
[session startRunning];
NSURL *vidURL = [[NSURL alloc]initFileURLWithPath:videoURL];
[output startRecordingToOutputFileURL:vidURL recordingDelegate:self];
NSLog(@\"Recording started in %@\",videoURL);
[rootRep addObject:videoURL];
[vidURL release];
[videoURL release];
}else{
isRecording = false;
[output stopRecording];
[session removeOutput:output];
[output release];
NSLog(@\"Recording stopped\");
[recBut setImage:[UIImage imageNamed:@\"rec.png\"] forState:UIControlStateNormal];
}
}
编辑:我已经实现了一种方法来分析所有捕获的视频并删除有问题的视频,我的应用程序再次稳定,但是我仍然想知道为什么有些视频创建得不好。
解决方法
我不知道为什么相机每次都不能准确捕获好视频文件,但是我将向您展示如何安全地测试文件是否有效。您必须使用要测试的文件路径创建一个AVAsset,该AVAsset具有一个名为\'playable \'的属性,即布尔值,然后您可以循环使用捕获视频的地址循环访问数组,询问当前资产是否可播放并删除损坏的文件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。