I have my app set up to record video from the camera using an AVCaptureSession, however, there is no audio with it. What do I need to do to record audio and then add it to the
Add below code between beginConfiguration()
and commitConfiguration()
// Add audio device to the recording
let audioDevice = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeAudio)
do {
let audioInput = try AVCaptureDeviceInput(device: audioDevice)
self.captureSession.addInput(audioInput)
} catch {
print("Unable to add audio device to the recording.")
}
in swift 5x, you can use this:
do {
guard let audioDevice = AVCaptureDevice.default(for: AVMediaType.audio) else {
print("Default audio device is unavailable.")
setupResult = .configurationFailed
session.commitConfiguration()
return
}
// Add audio input
let audioInput = try AVCaptureDeviceInput(device: audioDevice)
if session.canAddInput(audioInput) {
session.addInput(audioInput)
} else {
print("Couldn't add audio device input to the session.")
setupResult = .configurationFailed
session.commitConfiguration()
return
}
} catch {
print("Couldn't create Audio device input: \(error)")
setupResult = .configurationFailed
session.commitConfiguration()
return
}
You have not included the audio device:
AVCaptureDevice *audioDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeAudio];
AVCaptureDeviceInput * audioInput = [AVCaptureDeviceInput deviceInputWithDevice:audioDevice error:nil];
[session addInput:audioInput]
between beginConfiguration
and commitConfiguration
. It'll work!!!