видео не будет загружено - PullRequest
0 голосов
/ 08 марта 2019

Я хочу, чтобы мое видео транслировалось в режиме просмотра, а не на экран, я указывал это во всех отношениях, переключал опцию в раскадровках и все еще ничего. любые мысли или идеи, может быть, что-то, что я пропускаю, пожалуйста, не стесняйтесь проверить код самостоятельно и посмотреть результат (заполняет весь экран, и все еще не может играть в строке.)

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

Отредактировал ссылку на круглосуточную работу (https://devstreaming -cdn.apple.com / videos / streaming / examples / img_bipbop_adv_example_ts / master.m3u8? Playsinline = 1 )

1 Ответ

1 голос
/ 08 марта 2019

Я вижу здесь некоторые ошибки.

Прежде всего, вы уже добавили 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 для демонстрации.

...