我希望我的视频在视图中流传输而不接管屏幕,我已经指定了每种方式,都在情节提要中切换了该选项,但仍然没有任何效果。任何想法或想法,也许是我遗漏的东西,请随时测试自己的代码并查看结果(填满整个屏幕,但仍无法内联播放。)
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let webConfiguration = WKWebViewConfiguration()
webConfiguration.allowsInlineMediaPlayback = true
webConfiguration.mediaTypesRequiringUserActionForPlayback = []
LiveStream = WKWebView(frame: CGRect(x: 0, y: 0, width: 375, height: 300), configuration: webConfiguration)
self.view.addSubview(LiveStream)
if let videoURL:URL = URL(string: "https://devstreaming-cdn.apple.com/videos/streaming/examples/img_bipbop_adv_example_ts/master.m3u8?playsinline=1") {
let request:URLRequest = URLRequest(url: videoURL)
LiveStream.load(request)
}
将链接编辑为24/7正常运行时间(https://devstreaming-cdn.apple.com/videos/streaming/examples/img_bipbop_adv_example_ts/master.m3u8?playsinline=1)
答案 0 :(得分:1)
我在这里看到一些错误。
首先,您已经在情节提要中添加了WKWebView
,我猜您是从
@IBOutlet var LiveStream: WKWebView!
,您还将使用
将其再次添加到视图中self.view.addSubview(LiveStream)
添加方法不正确。
您可以使用UIView
。
为此,请在情节提要中添加UIView
并为此创建IBOutlet
@IBOutlet weak var viewForEmbeddingWebView: UIView!
然后声明一个实例var LiveStream: WKWebView!
现在,您可以如下所示配置LiveStream
:
let webConfiguration = WKWebViewConfiguration()
webConfiguration.allowsInlineMediaPlayback = true
webConfiguration.mediaTypesRequiringUserActionForPlayback = []
LiveStream = WKWebView(frame: viewForEmbeddingWebView.frame, configuration: webConfiguration)
self.viewForEmbeddingWebView.addSubview(LiveStream)
if let videoURL:URL = URL(string: "https://www.youtube.com/embed/9n1e1N0Sa9k?playsinline=1") {
let request:URLRequest = URLRequest(url: videoURL)
LiveStream.load(request)
}
您的结果将是:
如您所见,视频正在WKWebView
内部播放,而不是全屏显示。
注意:
您的URL
对我不起作用,所以我使用了另一个URL
进行演示。