mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-10-09 03:20:48 +00:00
Fix video scrubbing
This commit is contained in:
parent
ac22a38230
commit
3c39e2c0ce
@ -460,7 +460,6 @@ public final class MediaEditor {
|
||||
let targetPosition = CMTime(seconds: position, preferredTimescale: CMTimeScale(60.0))
|
||||
if self.targetTimePosition?.0 != targetPosition {
|
||||
self.targetTimePosition = (targetPosition, play)
|
||||
print("targetchange")
|
||||
if !self.updatingTimePosition {
|
||||
self.updateVideoTimePosition()
|
||||
}
|
||||
@ -483,10 +482,8 @@ public final class MediaEditor {
|
||||
return
|
||||
}
|
||||
self.updatingTimePosition = true
|
||||
print("seekupdate")
|
||||
self.player?.currentItem?.seek(to: targetPosition, toleranceBefore: .zero, toleranceAfter: .zero, completionHandler: { [weak self] _ in
|
||||
self.player?.seek(to: targetPosition, toleranceBefore: .zero, toleranceAfter: .zero, completionHandler: { [weak self] _ in
|
||||
if let self {
|
||||
print("done")
|
||||
if let (currentTargetPosition, _) = self.targetTimePosition, currentTargetPosition == targetPosition {
|
||||
self.updatingTimePosition = false
|
||||
self.targetTimePosition = nil
|
||||
|
@ -127,7 +127,7 @@ final class VideoTextureSource: NSObject, TextureSource, AVPlayerItemOutputPullD
|
||||
]
|
||||
|
||||
let output = AVPlayerItemVideoOutput(outputSettings: outputSettings)
|
||||
//output.suppressesPlayerRendering = true
|
||||
output.suppressesPlayerRendering = true
|
||||
output.setDelegate(self, queue: self.queue)
|
||||
playerItem.add(output)
|
||||
self.playerItemOutput = output
|
||||
@ -163,7 +163,7 @@ final class VideoTextureSource: NSObject, TextureSource, AVPlayerItemOutputPullD
|
||||
if self.player.rate != 0 {
|
||||
self.forceUpdate = true
|
||||
}
|
||||
self.update(forced: true) //self.forceUpdate)
|
||||
self.update(forced: self.forceUpdate)
|
||||
self.forceUpdate = false
|
||||
}
|
||||
|
||||
|
@ -612,9 +612,10 @@ final class MediaEditorScreenComponent: Component {
|
||||
framesUpdateTimestamp: playerState.framesUpdateTimestamp,
|
||||
trimUpdated: { [weak mediaEditor] start, end, updatedEnd, done in
|
||||
if let mediaEditor {
|
||||
mediaEditor.setVideoTrimRange(start..<end)
|
||||
if done {
|
||||
mediaEditor.seek(start, andPlay: true)
|
||||
|
||||
mediaEditor.setVideoTrimRange(start..<end)
|
||||
} else {
|
||||
mediaEditor.seek(updatedEnd ? end : start, andPlay: false)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user