在SwiftUI中使用VideoPlayer播放视频

iOS14的新特性

Posted by Joker Hook on April 28, 2022

SwiftUI的VideoPlayer视图允许我们从任何本地或远程URL播放电影。它来自AVKit框架,因此在试用之前,您应该确保并添加导入AVKit

import AVKit

例如,如果您的应用程序包中有video.mp4,并想播放它,您将使用此功能:

VideoPlayer(player: AVPlayer(url:  Bundle.main.url(forResource: "video", withExtension: "mp4")!))
    .frame(height: 400)

如果您想播放远程视频,请使用其远程URL:

VideoPlayer(player: AVPlayer(url:  URL(string: "https://bit.ly/swswift")!))
    .frame(height: 400)

如果愿意,您可以向VideoPlayer初始化器提供第二个参数,该参数将要在视频上绘制的内容添加。这将绘制在系统视频控件下方,但可以响应这些控件未捕获的任何事件。

例如,这会将文本“水印”放在视频区域的最顶部:

VideoPlayer(player: AVPlayer(url:  URL(string: "https://bit.ly/swswift")!)) {
    VStack {
        Text("Watermark")
            .foregroundColor(.black)
            .background(Color.white.opacity(0.7))
        Spacer()
    }
    .frame(width: 400, height: 300)
}