我的应用程序遇到问题,当用户将视频置于全屏状态并向上拖动该视频时,屏幕变为黑色,并且视频继续在背景上播放。NavigationView
(三级视图)中有一个视频。 >
SwiftUI和Swift 5
此外,我也在寻找使用SwiftUI的任何方法来在用户点击按钮时进入全屏视频,而不是在新视图内加载。
编辑
我想出了向上拖动的问题,如果有人遇到相同的问题,请检查您是否禁用了应用程序中的任何方向模式,以解决我必须在所有方向模式下启用问题应用程序的问题。
我遇到我的应用程序的问题,当用户将视频全屏放置并向上拖动视频时,屏幕变黑,视频继续播放...]]
使用UIViewRepresentable
和AVPlayer
:
struct PlayerView: UIViewRepresentable {
func updateUIView(_ uiView: UIView, context: UIViewRepresentableContext<PlayerView>) {
}
func makeUIView(context: Context) -> UIView {
return PlayerUIView(frame: .zero)
}
}
class PlayerUIView: UIView {
private let playerLayer = AVPlayerLayer()
override init(frame: CGRect) {
super.init(frame: frame)
let url = URL(string: "https://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8")!
let player = AVPlayer(url: url)
player.play()
playerLayer.player = player
playerLayer.videoGravity = .resizeAspectFill
layer.addSublayer(playerLayer)
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func layoutSubviews() {
super.layoutSubviews()
playerLayer.frame = bounds
}
}