import AVKit import Defaults import SwiftUI #if os(iOS) struct AppleAVPlayerView: UIViewRepresentable { @EnvironmentObject<PlayerModel> private var player func makeUIView(context _: Context) -> some UIView { let playerLayerView = PlayerLayerView(frame: .zero) playerLayerView.player = player return playerLayerView } func updateUIView(_: UIViewType, context _: Context) {} } #else struct AppleAVPlayerView: UIViewControllerRepresentable { @EnvironmentObject<AccountsModel> private var accounts @EnvironmentObject<CommentsModel> private var comments @EnvironmentObject<NavigationModel> private var navigation @EnvironmentObject<PlayerModel> private var player @EnvironmentObject<PlaylistsModel> private var playlists @EnvironmentObject<SubscriptionsModel> private var subscriptions func makeUIViewController(context _: Context) -> AppleAVPlayerViewController { let controller = AppleAVPlayerViewController() controller.accountsModel = accounts controller.commentsModel = comments controller.navigationModel = navigation controller.playerModel = player controller.playlistsModel = playlists controller.subscriptionsModel = subscriptions player.avPlayerBackend.controller = controller return controller } func updateUIViewController(_: AppleAVPlayerViewController, context _: Context) { player.rebuildTVMenu() } } #endif