swift - 自定义摄像头,当我用后置摄像头录制视频时,视频不播放音频
问题描述
我正在尝试使自定义相机工作得很好,但是当我将相机切换到后置位置时,视频正在录制,但没有声音,当我更改为前置时,它工作得很好,这是我的完整代码。如果有人可以帮助我,我真的很感激。
` func changeCamera(){
guard let input = session!.inputs[0] as? AVCaptureDeviceInput else { return }
// Begin new session configuration and defer commit
session!.beginConfiguration()
defer { session!.commitConfiguration() }
// Create new capture device
var newDevice: AVCaptureDevice?
if input.device.position == .back {
newDevice = cameraWithPosition(position: .front)
}else{
newDevice = cameraWithPosition(position: .back)
}
// 创建新的捕获输入 var deviceInput: AVCaptureDeviceInput!
do {
deviceInput = try AVCaptureDeviceInput(device: newDevice!)
} catch let error {
print(error.localizedDescription)
return
}
//session!.removeInput(input)
if let inputs = session!.inputs as? [AVCaptureDeviceInput] {
for input in inputs {
session!.removeInput(input)
}
}
session!.addInput(deviceInput)
}
func cameraWithPosition(position: AVCaptureDevice.Position) -> AVCaptureDevice? {
let deviceDescoverySession = AVCaptureDevice.DiscoverySession.init(deviceTypes: [AVCaptureDevice.DeviceType.builtInWideAngleCamera], mediaType: AVMediaType.video,position: AVCaptureDevice.Position.unspecified)
for device in deviceDescoverySession.devices {
if device.position == position {
return device
}
}
return nil
}`
解决方案
推荐阅读
- html - Django从相关下拉列表中显示多个值
- vb.net - 如何修复 VB.NET 错误“参数无效”?
- ios - SwiftUI 中的页面浏览图片库
- javascript - 处理 AJAX 请求时使用 Observables 的原因
- html - 背景图像滚动功能不起作用
- python - Plotly:如何显示除边际直方图计数之外的其他值?
- flutter - 滚动不适用于 SingleChildScrollView
- ios - 如何在单个项目中处理多个环境支持和不同目标?
- react-native - React Native:Android 9 上 TextAlign 'justify' 的奇怪行为
- docker - 使用 ansible 停止基于公共端口的 docker 容器