Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用AVAudioRecorder会中断AVCaptureSession上的音频_Ios_Objective C_Swift_Avaudiosession_Avcapturedevice - Fatal编程技术网

Ios 使用AVAudioRecorder会中断AVCaptureSession上的音频

Ios 使用AVAudioRecorder会中断AVCaptureSession上的音频,ios,objective-c,swift,avaudiosession,avcapturedevice,Ios,Objective C,Swift,Avaudiosession,Avcapturedevice,我正在尝试录制音频/视频会话,同时监视音频级别。我设置了我的AVCaptureSession输入 do { try captureSession.addInput(AVCaptureDeviceInput(device: captureDevice)) } catch { print("error adding video") } audioDevice = AVCaptureDevice.defaultDevice(withMediaType: AVMediaTypeAud

我正在尝试录制音频/视频会话,同时监视音频级别。我设置了我的
AVCaptureSession
输入

do { 
    try captureSession.addInput(AVCaptureDeviceInput(device: captureDevice))
} catch {
    print("error adding video") 
}
audioDevice = AVCaptureDevice.defaultDevice(withMediaType: AVMediaTypeAudio)
do { 
    let audioInput = try AVCaptureDeviceInput(device: audioDevice)
    captureSession.addInput(audioInput)
} catch { 
    print("error adding audio") 
}
这很有效。但一旦我通过添加以下内容来启用计量

recordingSession = AVAudioSession.sharedInstance() 

我丢失了录像带上的音频

我试图从
录音机中查找
CaptureDevice
,但找不到,也找不到
CaptureSession中的
可用性


有人能告诉我解决方案吗?

您不需要录音机。您可以从captureOutput:didOutputSampleBuffer获取视频和音频。如果您想要音频级别,可以在音频通道中调用averagePowerLevel。我可能在这些类中迷失了方向,但尽管文档中说AVCaptureFileOutput具有用于使用此协议分配代理的委托属性,但我的Xcode告诉我它没有。
audioRecorder = try AVAudioRecorder(url: audioFilename, settings: settings)
audioRecorder.delegate = self
audioRecorder.record()
audioRecorder.isMeteringEnabled = true