Почему пример кода AVCam не использует layerWithSession? - PullRequest
0 голосов
/ 31 мая 2018

Я пытаюсь разгадать пример кода Objective-C AVCam от Apple, но не знаю точно, где он добавляет сеанс захвата в слой предварительного просмотра.Наш код создает указатель AVCaptureVideoPreviewLayer с использованием интерфейса layerWithSession, но это вызывает проблему, если мы используем его в главном потоке, поскольку для его завершения может потребоваться более 10 секунд.И тот маленький другой пример кода, который я нахожу в Интернете, использует тот же интерфейс.

Но я не вижу этого нигде в коде ObjC для образца AVCam.Он присваивает сеанс AVCamPreviewView, но, насколько я могу судить, он просто хранит объект.Или это фактически назначает сеанс для UIView?

1 Ответ

0 голосов
/ 01 июня 2018

Это следующая строка, которая гарантирует, что PreviewView имеет AVCaptureVideoPreviewLayer.

+ (Class)layerClass
{
    return [AVCaptureVideoPreviewLayer class];
}

layerClass () вызывается изнутри, чтобы выяснить, какой слой должен быть присоединен к этому UIView при его инициализации.Затем setSession () устанавливает сеанс для этого слоя предварительного просмотра.

...