如何在 SwiftUI 中使用 VideoPlayer() 进入全屏?

roo*_*far 8 swift swiftui

我在我的项目中使用以下代码并且效果很好。

但我需要知道当用户点击按钮或任何其他操作时是否可以全屏播放视频。

这是我的代码:

VideoPlayer(player: AVPlayer(url:  URL(string: "https://xxx.mp4")!)) {
    VStack {
        Text("Watermark")
                .foregroundColor(.black)
                .background(Color.white.opacity(0.7))
        Spacer()
    }
            .frame(width: 400, height: 300)
}
.frame(width: UIScreen.main.bounds.width, height: 300)
Run Code Online (Sandbox Code Playgroud)

所以基本上,我们的想法是让VideoPlayer全屏播放类似于 YouTube 的视频播放器。

VideoPlayer()使用in可以吗swiftUI

Vir*_*j D 7

他们应该包含一个选项或默认有该按钮,无论如何,VideoPlayer如果有人知道添加有关相同的评论,我不知道为什么苹果会这样做

不过还有一个更简单的方法

struct CustomVideoPlayer: UIViewControllerRepresentable {
  
  func makeUIViewController(context: Context) -> AVPlayerViewController {
    let controller = AVPlayerViewController()
    let url: String = "https://xxx.mp4"
    let player1 = AVPlayer(url: URL(string: url)!)
    
    controller.player = player1
    return controller
  }
  
  func updateUIViewController(_ uiViewController: AVPlayerViewController, context: Context) {
    
  }
}
Run Code Online (Sandbox Code Playgroud)

尝试这个代码并调用CustomVideoPlayer()并给它一个frame任意高度,你将在左上角有一个全屏选项,就像 youtube 一样

编辑:我尝试了接受的解决方案,但我认为它不会全屏显示

  • 我能够解决这个问题。这一切都记录在我的 AZVideoPlayer 包的自述文件中:https://github.com/adamzarn/AZVideoPlayer (2认同)