我正在使用GPUImage框架,使用GPUImageVideoCamera录制视频。
它过去曾经非常完美地工作,但有时我会从我的相机屏幕来回走动,它有时会崩溃。我不知道发生了什么。我正在使用ARC和IOS 6.
我正在添加我的错误图片,请看一下。
当释放frameRenderingSemaphore时,崩溃发生在GpuImageVideoCamera dealloc方法中:
// ARC forbids explicit message send of 'release'; since iOS 6 even for dispatch_release() calls: stripping it out in that case is required.
#if ( (__IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_6_0) || (!defined(__IPHONE_6_0)) )
if (frameRenderingSemaphore != NULL)
{
dispatch_release(frameRenderingSemaphore);
}
#endif
答案 0 :(得分:3)
看来这不是ARC /非ARC的问题(我尝试过使用和不启用ARC的GPUImage构建)。
我发现的是,在释放GPUImageVideoCamera之前,你需要阻止它捕获任何帧。然后在[camera release]
上安排对GPUImageContext.contextQueue
的调用,这将确保在处理完所有帧后调用该版本。
很抱歉没有发布更多示例代码,现在使用Xamarin / C#的GPUImage,因此翻译有点麻烦。
答案 1 :(得分:0)
尝试删除项目中的所有断点,并执行产品 - &gt;清洁