fix: set window background to black

This commit is contained in:
yumoqing 2026-06-23 08:55:50 +08:00
parent d62a3f79c1
commit 4879f56ef1

View File

@ -125,6 +125,43 @@ struct MiniPlayerApp: App {
}
}
// MARK: - AVPlayerLayer
struct PlayerLayerView: NSViewRepresentable {
let player: AVPlayer
func makeNSView(context: Context) -> NSView {
let view = PlayerLayerHostView()
view.playerLayer.player = player
view.playerLayer.videoGravity = .resizeAspect
return view
}
func updateNSView(_ nsView: NSView, context: Context) {
if let host = nsView as? PlayerLayerHostView {
host.playerLayer.player = player
}
}
}
class PlayerLayerHostView: NSView {
let playerLayer = AVPlayerLayer()
override init(frame: CGRect) {
super.init(frame: frame)
wantsLayer = true
layer = playerLayer
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func layout() {
super.layout()
playerLayer.frame = bounds
}
}
// MARK: - BricksView wrapper
struct BricksAppView: View {
@ObservedObject var bridge: PlayerBridge
@ -147,15 +184,10 @@ struct BricksAppView: View {
var body: some View {
ZStack(alignment: .topLeading) {
// Bricks
if let json = jsonString {
BricksView(json: json, engine: engine)
} else {
ProgressView("Loading UI...")
.task {
jsonString = loadJSONString()
}
}
Color.black.ignoresSafeArea()
// AVPlayerLayer AVPlayerView
PlayerLayerView(player: bridge.player)
.frame(maxWidth: .infinity, maxHeight: .infinity)
//
MiniPlayerIcon()