Разве плохо, если я не заканчиваю сеанс при использовании AVFoundation? - PullRequest
0 голосов
/ 06 декабря 2018

Я написал некоторый код для приложения камеры, например Snapchat, в котором пользователь держит кнопку, чтобы снять видео.Чтобы попытаться ускорить процесс перехода от одного вида к другому, мы избавились от функции ниже:

    func stopSession() {

    //if it is running then stop running
    if captureSession.isRunning {
        videoQueue().async {
            self.captureSession.stopRunning()
        }
    }

}

Вместо вызова этого я использую только:

    func stopRecording() {

    if movieOutput.isRecording == true {
        movieOutput.stopRecording()
    }
}

Этопричин делает это так, когда пользователь отпускает кнопку, он мгновенно переключается на предварительный просмотр.Я не нашел никаких ошибок, возникающих из-за этого.Так что мне было интересно ... Есть ли проблема в этом?

1 Ответ

0 голосов
/ 06 декабря 2018

Не пропускайте остановку сеанса

stopRunning()

Этот метод используется для остановки потока данных со входов на выходы, подключенные к экземпляру AVCaptureSession, которыйэто получатель.Этот метод является синхронным и блокируется до тех пор, пока приемник полностью не остановится.

, несмотря на то, что это ускорит ваш процесс, поток будет продолжаться, что истощит ресурсы пользователя, stopRecording только прекратит запись ввыходной файл, который вы здесь установили

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