Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 视频将不会在线加载_Ios_Swift_Wkwebview - Fatal编程技术网

Ios 视频将不会在线加载

Ios 视频将不会在线加载,ios,swift,wkwebview,Ios,Swift,Wkwebview,我希望我的视频在视图中流式传输,而不是占据屏幕,我指定了各种方式,在故事板中切换了选项,但仍然什么都没有。任何想法或想法,可能是我遗漏的东西,请随意测试代码,看看结果填满整个屏幕,但仍然无法内联播放 override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. let webCo

我希望我的视频在视图中流式传输,而不是占据屏幕,我指定了各种方式,在故事板中切换了选项,但仍然什么都没有。任何想法或想法,可能是我遗漏的东西,请随意测试代码,看看结果填满整个屏幕,但仍然无法内联播放

    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正常运行时间的链接

我在这里看到了一些错误

首先,您已经在故事板中添加了WKWebView,我从您的

@IBOutlet var LiveStream: WKWebView! 
您还可以使用将其再次添加到视图中

self.view.addSubview(LiveStream)
这不是正确的添加方式

您可以使用UIView进行此操作

为此,在故事板中添加UIView并为此创建IBOutlet

然后声明一个实例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进行演示。

@rmaddy如果您删除了xcode标记,这怎么可能不是xcode问题?我没有正确理解标签系统吗?标签代表问题的内容。你的问题不是关于Xcode IDE的。您碰巧使用Xcode开发应用程序的事实与您的问题无关。更有用的是添加一个标签,指明这是用于iOS还是macOS的操作系统。是的,我确实意识到我自己也声明了两次。此方法似乎适用于youtube视频,但不适用于.m3u8链接,因为它不注意内联策略@Dharmesh我也重新启动了测试流,所以它现在应该可以工作。尝试这个链接,如果它离线,它会产生同样的有缺陷的结果:@Dharmesh
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)
}