import SwiftUI #if !os(macOS) struct MPVPlayerView: UIViewControllerRepresentable { @State private var controller = MPVViewController() @EnvironmentObject private var player func makeUIViewController(context _: Context) -> some UIViewController { player.mpvBackend.controller = controller player.mpvBackend.client = controller.client return controller } func updateUIViewController(_: UIViewControllerType, context _: Context) {} } #else struct MPVPlayerView: NSViewRepresentable { @State private var client = MPVClient() @State private var layer = VideoLayer() @EnvironmentObject private var player func makeNSView(context _: Context) -> some NSView { player.mpvBackend.client = client client.layer = layer layer.client = client let view = MPVOGLView() view.layer = client.layer view.wantsLayer = true return view } func updateNSView(_: NSViewType, context _: Context) {} } #endif