2
2
mirror of https://github.com/mastodon/mastodon-ios synced 2025-04-11 22:58:02 +02:00

Make sure to pause video play when not in use.

This commit is contained in:
shannon 2025-01-23 10:49:24 -05:00
parent e9b58d3047
commit f45ccacf1f

View File

@ -75,6 +75,11 @@ public final class MediaView: UIView {
layoutImageUsingFocus(in: blurhashImageView, container: container.bounds)
layoutImageUsingFocus(in: imageView, container: container.bounds)
}
deinit {
playerLooper?.disableLooping()
playerViewController?.player?.pause()
}
}
extension MediaView {
@ -184,6 +189,7 @@ extension MediaView {
playerViewController = createPlayerViewController()
}
guard let playerViewController else { return }
playerViewController.player?.pause()
playerViewController.player = player
playerViewController.showsPlaybackControls = false
@ -300,13 +306,14 @@ extension MediaView {
imageView.image = nil
// reset player
playerLooper?.disableLooping()
playerLooper = nil
playerViewController?.player?.pause()
playerViewController?.view.removeFromSuperview()
playerViewController?.contentOverlayView.flatMap { view in
view.removeConstraints(view.constraints)
}
playerViewController?.player?.pause()
playerViewController?.player = nil
playerLooper = nil
// blurhash
blurhashImageView.removeFromSuperview()
@ -340,6 +347,7 @@ extension MediaView {
private func setupPlayerLooper(player: AVPlayer) {
guard let queuePlayer = player as? AVQueuePlayer else { return }
guard let templateItem = queuePlayer.items().first else { return }
playerLooper?.disableLooping()
playerLooper = AVPlayerLooper(player: queuePlayer, templateItem: templateItem)
}