Hello I a have some code that loads a web video into a swift ui view and allows it to be played. Currently the video auto plays when it loads in and I would like to stop this behavior. Additionally the video can only be viewed in full screen mode and I can't figure out how to make it so that it can play while not being in full screen. I also get the warning "Error acquiring assertion: <Error Domain=RBSServiceErrorDomain Code=1 "(originator doesn't have entitlement com.apple.runningboard.assertions.webkit AND originator doesn't have entitlement" I tried the line "webView.configuration.allowsInlineMediaPlayback = true" to allow the video to play while not being full sized and it did not work. If anyone knows how to get these 2 pieces of functionality working I would appreciate it, thanks.
import SwiftUI
import WebKit
struct YouTubeView: UIViewRepresentable {
let videoId: String
func makeUIView(context: Context) -> WKWebView {
let webView = WKWebView()
webView.configuration.allowsInlineMediaPlayback = true
webView.configuration.mediaTypesRequiringUserActionForPlayback = []
return webView
}
func updateUIView(_ uiView: WKWebView, context: Context) {
guard let demoURL = URL(string: "https://s1.fwmrm.net/m/1/169843/20/89977492/AIDP7266000H_ENT_MEZZ_HULU_8166176_578.mp4") else { return }
uiView.scrollView.isScrollEnabled = false
uiView.load(URLRequest(url: demoURL))
}
}
struct VideoPlayerView: View {
var ids = "hzls6ZUHCYM"
var body: some View {
ZStack {
ScrollView(showsIndicators: false) {
VStack {
YouTubeView(videoId: ids)
.frame(width: 300, height: 175)
}
}
}
}
}
//modifier correct YouTube struct
struct YouTubeView: UIViewRepresentable {
var videoID: String
func makeUIView(context: Context) -> WKWebView {
let webConfiguration = WKWebViewConfiguration()
webConfiguration.allowsInlineMediaPlayback = true
return WKWebView(frame: .zero, configuration: webConfiguration)
}
func updateUIView(_ uiView: WKWebView, context: Context) {
let embedHTML = """
<!DOCTYPE html>
<html>
<body>
<iframe width="800" height="550" src="https://www.youtube.com/embed/\(videoID)" frameborder="0" allowfullscreen></iframe>
</body>
</html>
"""
uiView.loadHTMLString(embedHTML, baseURL: nil)
}
}