Почему я могу получить CaptureDevice на детской площадке, а не из приложения?

Это поставило меня в тупик. Следующий код отлично работает на детской площадке и правильно находит HD-камеру моего MacBook Pro FaceTime. Однако этот точно такой же код, вырезанный и вставленный в ViewDidLoad моего приложения MacOS, возвращает ноль.

import Cocoa
import AVFoundation

guard let faceTimeCamera = AVCaptureDevice.default(for: .video) else {
    print("Darn!")
    return
}

print("Got it!")
print(faceTimeCamera)

В приложении нет другого кода. Это совершенно новый шаблон Xcode с добавлением только этого.

Так чего мне не хватает?

Обновление: чего мне не хватало!:)

Два слова: App Sandbox!

Я просто заметил, что по умолчанию новый проект включает функцию песочницы приложения с отключенными функциями "Аудио" и "Камера". Либо их включение, либо отключение самой песочницы позволяет камере работать должным образом.

Странно, однако, несмотря на то, что "Аудио" также было отключено, микрофон все еще отображался в списке доступных устройств захвата. Интересно, почему это так? Кто-нибудь может прокомментировать?

0 ответов

Другие вопросы по тегам