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