diff --git a/Mixin/UserInterface/Controllers/Chat/Views/GalleryVideoView.swift b/Mixin/UserInterface/Controllers/Chat/Views/GalleryVideoView.swift index 6fc2e2c59a..093c097235 100644 --- a/Mixin/UserInterface/Controllers/Chat/Views/GalleryVideoView.swift +++ b/Mixin/UserInterface/Controllers/Chat/Views/GalleryVideoView.swift @@ -1,5 +1,6 @@ import UIKit import AVFoundation +import MixinServices final class GalleryVideoView: UIView, GalleryAnimatable { @@ -22,6 +23,8 @@ final class GalleryVideoView: UIView, GalleryAnimatable { } } + private var playerStatusObserver: NSKeyValueObservation? + required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) prepare() @@ -74,6 +77,15 @@ final class GalleryVideoView: UIView, GalleryAnimatable { playerView.backgroundColor = .clear playerView.layer.videoGravity = .resizeAspect playerView.layer.player = player + playerStatusObserver = player.observe(\.status) { player, _ in + if player.status == .failed { + if let error = player.error { + Logger.write(error: error) + } else { + Logger.write(log: "[GalleryVideoView] Player reports failed but no error is provided") + } + } + } contentView.addSubview(coverImageView) contentView.addSubview(playerView)