我正在尝试在后台进行视频/摄像机视图,同时我也允许在我的应用程序中进行各种操作的触觉反馈,但似乎AVFoundation对于我正在进行的任何调用都不是很好触觉呼叫:
if #available(iOS 10.0, *) {
let generator = UIImpactFeedbackGenerator(style: .light)
generator.prepare()
generator.impactOccurred()
// More:
let feedbackGenerator = UISelectionFeedbackGenerator()
feedbackGenerator.selectionChanged()
}
只要AVFoundation内容被注释掉,触觉反馈效果很好并且符合预期。有什么想法吗?
使用:
captureSession = AVCaptureSession()
和
previewLayer = AVCaptureVideoPreviewLayer(session:captureSession)
由于
答案 0 :(得分:1)
从 iOS 13 开始,您可以为 AVAudioSession
设置 setAllowHapticsAndSystemSoundsDuringRecording(_:)
:
do {
try AVAudioSession.sharedInstance().setAllowHapticsAndSystemSoundsDuringRecording(true)
} catch {
print(error)
}
然后你可以使用:
let generator = UIImpactFeedbackGenerator(style: .light)
generator.prepare()
generator.impactOccurred()
答案 1 :(得分:0)
我假设你使用AVCaptureSession然后你可能有这样的代码:
do {
let audioDevice = AVCaptureDevice.default(for: .audio)
let audioDeviceInput = try AVCaptureDeviceInput(device: audioDevice!)
if captureSession.canAddInput(audioDeviceInput) {
captureSession.addInput(audioDeviceInput)
} else {
print("Could not add audio device input to the session")
}
} catch {
print("Could not create audio device input: \(error)")
}
因此,音频输入与触觉引擎的效果不佳。在播放触觉之前,您必须从捕获会话中删除音频输入,然后将其添加回来。