У меня есть приложение для камеры iOS, где, когда пользователь начинает удерживать кнопку, я хочу начать запись, и в рамках этого метода longTap можно узнать, как долго запись В ТЕЧЕНИЕ ... ДО того, как она закончилась .Я хочу знать, как долго видео на данный момент или по-другому как долго пользователь записывает для .
Моя главная проблема в том, как узнать,в методе длинного нажатия, как долго пользователь записывал.Таким образом, если запись достигла X, она может выполнить Y.
В настоящее время я пытался:
Следующее в методе fileOutput для записи видео (вызывается после того, как пользователь пропустилкнопка)
{
let videoRecorded = outputURL! as URL
let determineAsset = AVAsset(url: videoRecorded)
let determineCmTime = CMTime(value: determineAsset.duration.value, timescale: 600)
let secondsBruh = CMTimeGetSeconds(determineCmTime)
print(secondsBruh, "<--- seconds br8h")
if doNotRunPlayback == true {
print("DO NIT RUN PLAYBACK WAS TRUE")
} else {
print("here--- ", secondsBruh)
if secondsBruh <= 0.35 {
print("iiiiiiiiii")
isThisOverSeconds = true
photoOutput?.capturePhoto(with: AVCapturePhotoSettings(), delegate: self) //, put in the
} else {
isSettingThumbnail = false
playRecordedVideo(videoURL: videoRecorded)
}
}
}
Начал запись Я получаю миниатюру для видео.U увидит переменную num, но проигнорирует ее ... она всегда будет давать ноль, учитывая, что это начало.
func fileOutput(_ output: AVCaptureFileOutput, didStartRecordingTo fileURL: URL, from connections: [AVCaptureConnection]) {
print("U IN THIS DIDSTARRECORD???")
isSettingThumbnail = true
photoOutput?.capturePhoto(with: AVCapturePhotoSettings(), delegate: self)
let testUrl = fileURL as URL!
let testAsset = AVAsset(url: testUrl!)
let deCmTime = CMTime(value: testAsset.duration.value, timescale: 600)
let seconds = CMTimeGetSeconds(deCmTime)
print(seconds, "<--- ok this si seconds")
num = Int(seconds)
print("723648732648732658723465872:::::", Int(seconds))
print("OUT THIS DIDSTART RECORD")
}
LongTap метод
if sender.state == .ended {
print("UIGestureRecognizerStateEnded")
if num == 0 {
print("5555555555555")
photoOutput?.capturePhoto(with: AVCapturePhotoSettings(), delegate: self)
} else {
print("num was greater than 0")
}
stopRecording()
print("didLongTapEndedend")
} else if sender.state == .began {
print("UIGestureRecognizerStateBegan.")
startCapture()
print("didLongTapBeganend")
}
То, что я имею, однако, оченьбагги.Это в значительной степени непригодно для использования, определенно невозможно.
Спасибо за любую помощь.