gpt4 book ai didi

ios - 在 ios 的 opentok 上更改相机

转载 作者:行者123 更新时间:2023-11-29 11:42:54 26 4
gpt4 key购买 nike

我正在尝试更改 OpenTok 中发布者的摄像头。在 Android 中它非常简单,但我不明白如何在 ios 的 objective c 中做到这一点。

我试过了:

if (_publisher.cameraPosition == AVCaptureDevicePositionFront) 
{
_publisher.cameraPosition = AVCaptureDevicePositionBack; // back camera

} else
{
_publisher.cameraPosition = AVCaptureDevicePositionFront; // front camera
}

我不得不说我是 Objective C(和 OpenTok)的初学者。

我该怎么办?

谢谢你:)

最佳答案

试试这个:

func setCameraPosition(_ position: AVCaptureDevicePosition) -> Bool {
guard let preset = captureSession?.sessionPreset else {
return false
}

let newVideoInput: AVCaptureDeviceInput? = {
do {
if position == AVCaptureDevicePosition.back {
return try AVCaptureDeviceInput.init(device: backFacingCamera())
} else if position == AVCaptureDevicePosition.front {
return try AVCaptureDeviceInput.init(device: frontFacingCamera())
} else {
return nil
}
} catch {
return nil
}
}()

guard let newInput = newVideoInput else {
return false
}

var success = true

captureQueue.sync {
captureSession?.beginConfiguration()
captureSession?.removeInput(videoInput)

if captureSession?.canAddInput(newInput) ?? false {
captureSession?.addInput(newInput)
videoInput = newInput
} else {
success = false
captureSession?.addInput(videoInput)
}

captureSession?.commitConfiguration()
}

if success {
capturePreset = preset
}

return success
}

func toggleCameraPosition() -> Bool {
guard hasMultipleCameras else {
return false
}

if videoInput?.device.position == .front {
return setCameraPosition(.back)
} else {
return setCameraPosition(.front)
}
}

关于ios - 在 ios 的 opentok 上更改相机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45506435/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com