

dependencies: [
.package(url: "https://github.com/William-Weng/WWDualCamera.git", .upToNextMajor(from: "1.2.0"))
]
参数 |
说明 |
multiSession |
AVCaptureMultiCamSession |
isMultiCamSupported |
是否支持多镜头同时动作 |
isRunning |
是否正在预览画面 |
supportCount |
当前设备支持的最大同时使用镜头数 |
函数 |
说明 |
start() |
开始执行 |
stop() |
关闭执行 |
addInputs(_:isConnections:) |
加入额外装置输入 (可以不连接) |
addOutputs(_:isConnections:) |
加入额外资源输出 (可以不连接) |
configuration(action:) |
相关的设定 (切换硬件) |
sessionOutputs(delegate:inputs:videoGravity:stabilizationMode:) |
产生输出信息 |
removeInputs(_:) |
移除输入装置 |
removeAllInputs() |
移除所有输入装置 |
removeOutputs(_:) |
移除输出装置 |
removeAllOutputs() |
移除所有输出装置 |
canAddConnection(_:) |
加入新的连接 |
canRemoveConnection(_:) |
安全的移除连接 |
cost() |
硬件 / 系统的用量指标 |
import UIKit
import AVFoundation
import WWDualCamera
final class ViewController: UIViewController {
@IBOutlet weak var mainView: UIView!
@IBOutlet weak var subView: UIView!
private var cameraOutputs: [AVCaptureVideoDataOutput] = []
private var cameraPreviewLayers: [AVCaptureVideoPreviewLayer] = []
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
initSetting()
_ = WWDualCamera.shared.start()
}
}
private extension ViewController {
func initSetting() {
let inputs: [WWDualCamera.CameraSessionInput] = [
(frame: mainView.frame, deviceType: .builtInWideAngleCamera, position: .back),
(frame: subView.frame, deviceType: .builtInWideAngleCamera, position: .front),
]
let outputs = WWDualCamera.shared.sessionOutputs(inputs: inputs)
for (index, info) in outputs.enumerated() {
guard let output = info.output,
let previewLayer = info.previewLayer
else {
return
}
if (index == 1) { previewLayer.cornerRadius = subView.frame.width * 0.5 }
cameraOutputs.append(output)
cameraPreviewLayers.append(previewLayer)
view.layer.addSublayer(previewLayer)
}
}
}