4
我有錄製應用程序實現,用戶可以點擊「錄製」按鈕開始/停止錄製。我通過基本的GPUImageVideoCamera
實現了這一點,輸出設置爲GPUImageView
以及GPUImageMovieWriter
。GPUImageMovieWriter - 記錄視頻兩端偶爾出現黑框
50%的時間內,錄製的剪輯最後會在兩端有兩個(或一個)黑色框架,有時兩個都會結束。實現相當簡單,但無論如何都是這樣。
gpuImageView = [[GPUImageView alloc] initWithFrame:cameraView.frame];
gpuImageView.fillMode = kGPUImageFillModePreserveAspectRatioAndFill;
[cameraView addSubview:gpuImageView];
videoCamera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPresetHigh cameraPosition:(usingBackCamera) ? AVCaptureDevicePositionBack : AVCaptureDevicePositionFront];
[videoCamera addTarget:gpuImageView];
[videoCamera addTarget:movieWriter];
videoCamera.audioEncodingTarget = movieWriter;
[videoCamera startCameraCapture];
double delayToStartRecording = 0.5;
dispatch_time_t startTime = dispatch_time(DISPATCH_TIME_NOW, delayToStartRecording * NSEC_PER_SEC);
dispatch_after(startTime, dispatch_get_main_queue(), ^(void){
NSLog(@"Start recording");
[movieWriter startRecording];
});
,然後停止以下的(同時直播相機繼續出現在GPUImageView
。
[movieWriter finishRecording];
有其他人遇到這個和/或找到了解決方案,以避免黑幀的記錄?我無法暫停/恢復攝像頭捕捉,以確保無縫的用戶體驗