wee*_*ior 4 video xcode frame avkit swiftui
我有一个适合在电视或笔记本电脑上观看的视频(即横向主导)。我需要使该视频垂直填满 iPhone 屏幕,而不会使视频超出纵横比。因此,视频左侧和右侧的大部分内容都会从屏幕的左侧和右侧渗出。
CodingWithChris 在这里以故事板的形式完成了这一点:https://www.youtube.com/watch?v =1HN7usMROt8(放大到 1:35:00)我需要知道如何在 SwiftUI 中以编程方式执行此操作。
目前我有一个在模拟器 onAppear 中播放的视频。这是我的代码:
struct SignInView: View {
private let player = AVPlayer(url: URL(fileURLWithPath: Bundle.main.path(forResource: "DL_preview", ofType: "mp4")!))
var body: some View {
ZStack {
VideoPlayer(player: player)
.onAppear() {
player.isMuted = true
player.play()
}
VStack {
Run Code Online (Sandbox Code Playgroud)
这是视频的屏幕截图,以供纵横比参考。想象一下在此屏幕截图的中央直立放置的 iPhone(纵向)。这就是我想要填充整个屏幕的所有框架。

非常感谢你的帮助!!
jn_*_*pdx 10
假设您的视频的宽高比为 16:9,则可以使用以下内容:
struct ContentView: View {
private let player = AVPlayer(url: URL(fileURLWithPath: Bundle.main.path(forResource: "mov1", ofType: "mov")!))
var body: some View {
ZStack {
GeometryReader { proxy in
VideoPlayer(player: player)
.ignoresSafeArea()
.frame(width: proxy.size.height * 16 / 9, height: proxy.size.height)
.position(x: proxy.size.width / 2, y: proxy.size.height / 2)
.onAppear() {
player.isMuted = true
player.play()
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
它使用 来GeometryReader获取 的可用大小View,然后将其转换为frame的 a VideoPlayer。最后,它使用修改器对其进行定位,使其居中position。
| 归档时间: |
|
| 查看次数: |
3804 次 |
| 最近记录: |