yattee/Shared/Views/MPVPlayerView.swift

35 lines
950 B
Swift
Raw Permalink Normal View History

2022-02-16 20:23:11 +00:00
import SwiftUI
#if !os(macOS)
struct MPVPlayerView: UIViewControllerRepresentable {
func makeUIViewController(context _: Context) -> some UIViewController {
PlayerModel.shared.mpvController
2022-02-16 20:23:11 +00:00
}
func updateUIViewController(_: UIViewControllerType, context _: Context) {}
}
#else
struct MPVPlayerView: NSViewRepresentable {
2022-02-27 20:31:17 +00:00
@State private var client = MPVClient()
@State private var layer = VideoLayer()
2022-02-16 20:23:11 +00:00
func makeNSView(context _: Context) -> some NSView {
PlayerModel.shared.mpvBackend.client = client
2022-03-20 20:31:19 +00:00
2022-02-27 20:31:17 +00:00
let view = MPVOGLView()
2022-11-11 18:55:18 +00:00
if !YatteeApp.isForPreviews {
client.layer = layer
layer.client = client
view.layer = client.layer
view.wantsLayer = true
}
2022-02-16 20:23:11 +00:00
2022-02-27 20:31:17 +00:00
return view
2022-02-16 20:23:11 +00:00
}
func updateNSView(_: NSViewType, context _: Context) {}
}
#endif