使用 Swift5.3.2、iOS14.4.1、Xcode 12.4、
我在 SwiftUI 中成功运行了 VideoPlayer。
我正在使用以下代码调用 Player 视图:VideoPlayer(player: AVPlayer(url: url))
.
问题是,只要 VideoPlayer 的父视图更新(即重新渲染),视频就会停止播放。
由于在 SwiftUI 中我无法控制何时发生这种重新渲染时刻,所以我不知道如何克服这个问题。
有任何想法吗 ?
这是整个代码:
VideoPlayer 视图是这样调用的:
struct MediaTabView: View {
@State private var url: URL
var body: some View {
// CALL TO VIDEOPLAYER IS HERE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
VideoPlayer(player: AVPlayer(url: url))
}
}
MediaTabView 是这样调用的:
import SwiftUI
struct PageViewiOS: View {
var body: some View {
ZStack {
Color.black
// CALL TO MEDIATABVIEW IS HERE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!d
MediaTabView(url: URL(string: "https://someurel.com"))
CloseButtonView()
}
}
}
PageViewiOS 视图是这样调用的:
struct MainView: View {
@EnvironmentObject var someState: AppStateService
var body: some View {
NavigationView {
Group {
if someState = .stateOne {
// CALL TO PAGEVIEWIOS IS HERE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
PageViewiOS()
} else {
Text("hello")
}
}
}
}
}