Поток звука при записи видео с помощью AVCaptureSession - PullRequest
0 голосов
/ 09 апреля 2020

В моем приложении 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)
        }

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...