Swift3 iOS10 приложение. Я положил SCNView
в рамку раскадровки. Я положил UIView
поверх этого (довести до фронта) и поместил его так, чтобы он заполнял только часть центра экрана.AVFoundation предварительный просмотр не отображается
В моем viewDidLoad
Я использую AVFoundation, чтобы найти камеру, построить сеанс, добавить вход, сделать предварительный просмотр, а затем добавить этот предварительный просмотр в слои UIView
.
И я получаю белый прямоугольник вместо просмотра:
я предполагаю, что я пропустил шаг где-то ...
// 3D scene and vars
@IBOutlet var sceneView: SCNView!
var camera: SCNNode!
var sphere: SCNNode!
// camera scene and vars
@IBOutlet var cameraView: UIView!
var cameraSession: AVCaptureSession = AVCaptureSession()
var cameraDevice : AVCaptureDevice!
var cameraInput : AVCaptureDeviceInput!
var cameraLayer: AVCaptureVideoPreviewLayer!
override func viewDidLoad() {
... 3D setup here ...
cameraDevice = AVCaptureDevice.defaultDevice(withDeviceType: .builtInWideAngleCamera, mediaType: AVMediaTypeVideo, position: .back)
do {
let possibleCameraInput: AnyObject? = try AVCaptureDeviceInput(device: cameraDevice)
if let anInput = possibleCameraInput as? AVCaptureDeviceInput {
if cameraSession.canAddInput(anInput) {
cameraSession.addInput(anInput)
}
}
} catch _ {
//TODO handle this error
}
// add the preview layer to our imageview
if cameraSession.inputs.count > 0 {
cameraLayer = AVCaptureVideoPreviewLayer(session: cameraSession) as AVCaptureVideoPreviewLayer
cameraView.layer.addSublayer(cameraLayer)
}
cameraSession.startRunning()
Я никогда раньше не пробовал это из SCNView, но то, что вы делаете, выглядит нормально. Если ваш идентификатор проблемы предполагает, прежде всего, заполнять эти ошибки TODO. убедитесь, что вы попадаете в ваши операторы if и фактически получаете входные данные, убедитесь, что ваш вид и слой имеют размер (проверьте ограничения и т. д.), проверьте представление. ты не пробовал это на симуляторе? – Scriptable
Ну, SCNView и UIView - это одноранговые узлы с «внешним видом», один Xcode вставляет автоматически. Да, это работает на моем телефоне ... добавление привязки. Кроме того, все ifs в порядке, и не возникает ошибок. –