mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-04 21:41:45 +00:00
Fix short video recording crash
This commit is contained in:
parent
11a284a303
commit
9a3103bc3f
@ -337,7 +337,7 @@ final class CameraOutput: NSObject {
|
||||
let outputFileURL = URL(fileURLWithPath: outputFilePath)
|
||||
let videoRecorder = VideoRecorder(configuration: VideoRecorder.Configuration(videoSettings: videoSettings, audioSettings: audioSettings), videoTransform: CGAffineTransform(rotationAngle: .pi / 2.0), fileUrl: outputFileURL, completion: { [weak self] result in
|
||||
if case let .success(transitionImage, duration, positionChangeTimestamps) = result {
|
||||
self?.recordingCompletionPipe.putNext(.finished((outputFilePath, transitionImage!, false), nil, duration, positionChangeTimestamps.map { ($0 == .front, $1) }, CACurrentMediaTime()))
|
||||
self?.recordingCompletionPipe.putNext(.finished((outputFilePath, transitionImage ?? UIImage(), false), nil, duration, positionChangeTimestamps.map { ($0 == .front, $1) }, CACurrentMediaTime()))
|
||||
} else {
|
||||
self?.recordingCompletionPipe.putNext(.failed)
|
||||
}
|
||||
@ -363,7 +363,10 @@ final class CameraOutput: NSObject {
|
||||
}
|
||||
|
||||
func stopRecording() -> Signal<VideoCaptureResult, NoError> {
|
||||
self.videoRecorder?.stop()
|
||||
guard let videoRecorder = self.videoRecorder, videoRecorder.isRecording else {
|
||||
return .complete()
|
||||
}
|
||||
videoRecorder.stop()
|
||||
|
||||
return self.recordingCompletionPipe.signal()
|
||||
|> take(1)
|
||||
|
||||
@ -291,7 +291,14 @@ private final class VideoRecorderImpl {
|
||||
|
||||
public func stopRecording() {
|
||||
self.queue.async {
|
||||
self.recordingStopSampleTime = CMTime(seconds: CACurrentMediaTime(), preferredTimescale: CMTimeScale(NSEC_PER_SEC))
|
||||
var stopTime = CMTime(seconds: CACurrentMediaTime(), preferredTimescale: CMTimeScale(NSEC_PER_SEC))
|
||||
if self.recordingStartSampleTime.isValid {
|
||||
if (stopTime - self.recordingStartSampleTime).seconds < 1.0 {
|
||||
stopTime = self.recordingStartSampleTime + CMTime(seconds: 1.0, preferredTimescale: self.recordingStartSampleTime.timescale)
|
||||
}
|
||||
}
|
||||
|
||||
self.recordingStopSampleTime = stopTime
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user