В моем приложении iOS в Swift я записываю видео, и некоторые записываемые видео имеют звук «Popping» в самом начале видео. Это происходит только на определенных устройствах, на других устройствах звук работает нормально. Кто-нибудь есть идеи, что может быть причиной этого? Я вставил свой код записи ниже:
func startRecording(frontCamera: Bool){
//Don't start recording unless a video preview session is already running
guard let session = captureSession else {return}
guard session.isRunning else {return}
print("STARTING RECORDING")
startRecordingTimer()
let fileManager = FileManager.default
let urls = fileManager.urls(for: .documentDirectory, in: .userDomainMask)
guard let documentDirectory: NSURL = urls.first as NSURL? else {
fatalError("documentDir Error")
}
let vidID = UUID().uuidString
self.videoOutputID = vidID //Track the ID corresponding with the video.. this ID will be used to create the draft content
let videoPath = vidID + ".mov"
videoInputURL = documentDirectory.appendingPathComponent(videoPath)
let movieFileOutput = AVCaptureMovieFileOutput()
if FileManager.default.fileExists(atPath: videoInputURL!.path) {
do {
try FileManager.default.removeItem(atPath: videoInputURL!.path)
} catch {
fatalError("Unable to delete file: \(error) : \(#function).")
}
}
let maxDuration: CMTime = CMTimeMake(value: 600, timescale: 10)
movieFileOutput.maxRecordedDuration = maxDuration
print("MAX DURATION" , maxDuration.seconds)
movieFileOutput.minFreeDiskSpaceLimit = 1024 * 1024
if self.captureSession!.canAddOutput(movieFileOutput) {
print("ADDING RECORDING OUTPUT")
self.captureSession!.addOutput(movieFileOutput)
}
movieFileOutput.startRecording(to: videoInputURL!, recordingDelegate: recordingDelegate!)
if let device = currentCaptureDevice{
setTorchMode(device:device)
}
}