美文网首页
卡顿优化captureSession

卡顿优化captureSession

作者: Smallwolf_JS | 来源:发表于2020-06-10 19:27 被阅读0次
    - (void)startRunning;
    

    在主线程直接调用这个api会导致卡顿问题
    苹果官网有指出这个需要在一个串行的异步线程中执行
    官网介绍地址https://developer.apple.com/documentation/avfoundation/avcapturesession?language=objc

    文档对这个方法的解释中提到了这个方法是同步方法,会阻塞当前线程,放在主线程会导致UI卡顿。
    解决方式

    - (void)sessionStartRunning{
        dispatch_queue_t queue = dispatch_queue_create("session Queue", DISPATCH_QUEUE_SERIAL);
        self.sessionQueue = queue;
        dispatch_async(self.sessionQueue, ^{
            [self.captureSession startRunning];
        });
    }
    - (void)sessionStopRunning{
        dispatch_async(self.sessionQueue, ^{
            if (self.captureSession.isRunning) {
                [self.captureSession stopRunning];
            }
        });
    }
    

    相关文章

      网友评论

          本文标题:卡顿优化captureSession

          本文链接:https://www.haomeiwen.com/subject/twaptktx.html