Skip to content

Commit

Permalink
preserve time on stream change
Browse files Browse the repository at this point in the history
  • Loading branch information
stonerl committed May 1, 2024
1 parent d1cf45c commit 0d5a907
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 7 deletions.
14 changes: 8 additions & 6 deletions Model/Player/Backends/AVPlayerBackend.swift
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ final class AVPlayerBackend: PlayerBackend {
_ stream: Stream,
of video: Video,
preservingTime: Bool,
upgrading _: Bool
upgrading: Bool
) {
isLoadingVideo = true

Expand All @@ -145,7 +145,7 @@ final class AVPlayerBackend: PlayerBackend {
_ = url.startAccessingSecurityScopedResource()
}

loadSingleAsset(url, stream: stream, of: video, preservingTime: preservingTime)
loadSingleAsset(url, stream: stream, of: video, preservingTime: preservingTime, upgrading: upgrading)
} else {
model.logger.info("playing stream with many assets:")
model.logger.info("composition audio asset: \(stream.audioAsset.url)")
Expand Down Expand Up @@ -219,7 +219,8 @@ final class AVPlayerBackend: PlayerBackend {
_ url: URL,
stream: Stream,
of video: Video,
preservingTime: Bool = false
preservingTime: Bool = false,
upgrading: Bool = false
) {
asset?.cancelLoading()
asset = AVURLAsset(url: url)
Expand All @@ -228,7 +229,7 @@ final class AVPlayerBackend: PlayerBackend {
switch self?.asset?.statusOfValue(forKey: "duration", error: &error) {
case .loaded:
DispatchQueue.main.async { [weak self] in
self?.insertPlayerItem(stream, for: video, preservingTime: preservingTime)
self?.insertPlayerItem(stream, for: video, preservingTime: preservingTime, upgrading: upgrading)
}
case .failed:
DispatchQueue.main.async { [weak self] in
Expand Down Expand Up @@ -303,7 +304,8 @@ final class AVPlayerBackend: PlayerBackend {
private func insertPlayerItem(
_ stream: Stream,
for video: Video,
preservingTime: Bool = false
preservingTime: Bool = false,
upgrading: Bool = false
) {
removeItemDidPlayToEndTimeObserver()

Expand Down Expand Up @@ -387,7 +389,7 @@ final class AVPlayerBackend: PlayerBackend {
}

if preservingTime {
if model.preservedTime.isNil {
if model.preservedTime.isNil || upgrading {
model.saveTime {
replaceItemAndSeek()
startPlaying()
Expand Down
2 changes: 1 addition & 1 deletion Model/Player/Backends/MPVBackend.swift
Original file line number Diff line number Diff line change
Expand Up @@ -330,7 +330,7 @@ final class MPVBackend: PlayerBackend {
}

if preservingTime {
if model.preservedTime.isNil {
if model.preservedTime.isNil || upgrading {
model.saveTime {
replaceItem(self.model.preservedTime)
}
Expand Down

0 comments on commit 0d5a907

Please sign in to comment.