2016-09-20 78 views
4

こんにちは、私は現在Swift3でiOS 10を開発中です。iOS10:WKWebViewで自動再生が動作しません(必須のUsActionForMediaPlayback = false)

私のシナリオは、WKWebViewを使用してYouTubeビデオをインラインで自動再生することです。 Apple Dev Docsの示唆しているように、ビデオ自動再生を有効にするためにconfigのmediaPlaybackRequiresUserActionをfalseに設定しました。

ただし、この設定は機能していないようですが、ビデオは正しくロードされていますが、実際に再生するには再生ボタンを押す必要があります。

アイデア?そのコードが動作しない理由を感謝:)

let config = WKWebViewConfiguration() 
config.requiresUserActionForMediaPlayback = false 
config.allowsInlineMediaPlayback = true 
let webView = WKWebView(frame: self.topView.bounds, configuration: config) 
webView.addObserver(self, forKeyPath: self.webViewLoadingKey, options: .new, context: nil) 
+0

はあなたがYouTubeの動画を自動再生することができましたWKWebViewを使用してインライン? –

+0

いいえ、私はWKWebViewにいくつかのバグがあると思います。私はSwiftにバグを提出したことを思い出しました。彼らはそれを修正しているかどうかは分かりません。あなたは私達に知らせることを試みることができます。ありがとう。 – RainCast

答えて

5

使用これを可能性がしたい場合:

のvar mediaTypesRequiringUserActionForPlayback:WKAudiovisualMediaTypes {セットされます}

+0

それは動作していない、ちょうど試してみました。 – RainCast

3

理由はiOSの10.0提供なしの代替資産として enter image description here

から非推奨.mediaPlaybackRequiresUserActionあり、WKWebViewを使用してタスクが現在の段階で行うことができないようです。しかし、あなただけの自動再生H5ビデオ、UIWebViewはiOS10ためのあなたの選択

func initPureWeb(){ 
    let web = UIWebView(frame: CGRect(x: 0, y: 0, width: 200, height: 200)) 
    web.backgroundColor = UIColor.clear 
    web.isOpaque = false 
    self.view.addSubview(web) 
    web.mediaPlaybackRequiresUserAction = false 
    let videoHtml = "<html><head><style>body{margin:0px 0px 0px 0px;}</style></head> <body> <div id=\"player\"></div> <script> var tag = document.createElement('script'); tag.src = 'http://www.youtube.com/player_api'; var firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); var player; function onYouTubePlayerAPIReady() { player = new YT.Player('player', { width:'200', height:'200', videoId:'bHQqvYy5KYo', events: { 'onReady': onPlayerReady } }); } function onPlayerReady(event) { event.target.playVideo(); } </script> </body> </html>"; 
    web.loadHTMLString(videoHtml, baseURL: Bundle.main.resourceURL) 
} 
+0

あなたの答えをありがとう。 UIWebViewを使用することはできませんでした。なぜなら、iOS10に移行した後、多くのパフォーマンス上の問題が発生したからです。私のコードは実際にUIWebViewを削除し、WKWebViewに置き換えます。皮肉なことに...:D – RainCast

+0

も必要です.UserActionForMediaPlaybackは廃止されません。 – RainCast

関連する問題