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 // MARK: - BricksView wrapper
struct BricksAppView: View { struct BricksAppView: View {
@ObservedObject var bridge: PlayerBridge @ObservedObject var bridge: PlayerBridge
@ -147,15 +184,10 @@ struct BricksAppView: View {
var body: some View { var body: some View {
ZStack(alignment: .topLeading) { ZStack(alignment: .topLeading) {
// Bricks Color.black.ignoresSafeArea()
if let json = jsonString { // AVPlayerLayer AVPlayerView
BricksView(json: json, engine: engine) PlayerLayerView(player: bridge.player)
} else { .frame(maxWidth: .infinity, maxHeight: .infinity)
ProgressView("Loading UI...")
.task {
jsonString = loadJSONString()
}
}
// //
MiniPlayerIcon() MiniPlayerIcon()