视频将不会内联加载

时间:2019-03-08 04:43:11

标签: ios swift wkwebview

我希望我的视频在视图中流传输而不接管屏幕,我已经指定了每种方式,都在情节提要中切换了该选项,但仍然没有任何效果。任何想法或想法,也许是我遗漏的东西,请随时测试自己的代码并查看结果(填满整个屏幕,但仍无法内联播放。)

    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

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)
}

您的结果将是:

enter image description here

如您所见,视频正在WKWebView内部播放,而不是全屏显示。

注意:

您的URL对我不起作用,所以我使用了另一个URL进行演示。