【问题标题】:Playing back captured videos on the ipad makes my app crash在 ipad 上播放捕获的视频使我的应用程序崩溃
【发布时间】:2011-05-31 20:34:45
【问题描述】:

我正在为 ipad 2 开发一个应用程序,该应用程序允许用户使用设备前置摄像头录制自己的视频,然后在视频播放器上播放。我的整体功能正常工作,但有时,当我加载将播放视频的视图时,有时我的应用程序会崩溃,因为: 'CALayerInvalidGeometry',原因:'CALayer 位置包含 NaN:[nan 11.5]' 我注意到,当录制的剪辑播放时间少于 15 秒时,该应用程序大部分(但并非唯一)崩溃。 任何人都知道什么s going on? Heres 负责记录的代码:

    -(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];
}

}

编辑:我已经实现了一种方法来分析所有捕获的视频并删除有问题的视频,我的应用程序再次稳定,但我仍然想知道为什么有些视频不能很好地创建。

【问题讨论】:

  • 我建议您发布播放代码(或加载视图的代码),如果您的应用程序在那里崩溃会很有用:-)
  • 我发现了一些事情,首先我拍摄的视频有时有问题,我仍然没有弄清楚原因或方式。关于播放,我使用的是我用 AVFoundation 编写的视频播放器,它因此而崩溃。我尝试使用 MPMediaPlayerController 播放器,应用程序没有崩溃,只是没有播放有问题的剪辑。我想我必须弄清楚如何捕捉 SIGABRT 信号,这样应用程序就不会与我的播放器一起崩溃。但最好还是把所有好的片段都拍下来。
  • 哦,而且,长度理论被证明是错误的,我有好的 3 秒长的剪辑和错误的 1:30 分钟剪辑。所以不,它与文件大小或剪辑长度无关。

标签: iphone ios xcode ipad video-capture


【解决方案1】:

我不知道为什么相机每次都不能捕捉到好的视频文件,但我会告诉你如何安全地测试文件是否正常工作。您必须使用要测试的文件路径创建一个 AVAsset,该 AVAsset 有一个名为“可播放”的属性,一个布尔值,然后您可以使用捕获的视频的地址循环一个数组,询问当前资产是否可播放并删除损坏的文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-15
    • 2020-11-28
    • 1970-01-01
    相关资源
    最近更新 更多