1
我試圖通過UIWebView在應用中播放YouTube視頻。我意識到這很容易,但視頻會自動播放全屏。有沒有辦法播放它不是全屏,而且,當UIWebView的大小改變時,視頻大小會改變?我正在Swift中尋找答案。在iOS應用中播放嵌入的YouTube視頻,而不是全屏
我在this answer找到了一個可能的答案,但是它是用Objective-C編寫的,我發現它很難翻譯。
我試圖通過UIWebView在應用中播放YouTube視頻。我意識到這很容易,但視頻會自動播放全屏。有沒有辦法播放它不是全屏,而且,當UIWebView的大小改變時,視頻大小會改變?我正在Swift中尋找答案。在iOS應用中播放嵌入的YouTube視頻,而不是全屏
我在this answer找到了一個可能的答案,但是它是用Objective-C編寫的,我發現它很難翻譯。
要回答您的第一個問題,每當UIWebView更改大小時,iFrame播放器都會重新加載。你不能改變這一點。
至於設置,你要在運行時動態獲取設備的寬度和高度,並將它們傳遞給你的UIWebView和玩家構造函數。這將播放視頻「inLine」,但全屏。將所需的任何寬度和高度值傳遞給構造函數,以允許inLine播放,而無需將視頻彈出至全屏播放器。
let webView = UIWebView(frame: self.view.frame)
self.view.addSubview(webView)
self.view.bringSubviewToFront(webView)
webView.allowsInlineMediaPlayback = true
webView.mediaPlaybackRequiresUserAction = false
let videoID = "zN-GGeNPQEg" // https://www.youtube.com/watch?v=zN-GGeNPQEg
let embededHTML = "<html><body style='margin:0px;padding:0px;'><script type='text/javascript' src='http://www.youtube.com/iframe_api'></script><script type='text/javascript'>function onYouTubeIframeAPIReady(){ytplayer=new YT.Player('playerId',{events:{onReady:onPlayerReady}})}function onPlayerReady(a){a.target.playVideo();}</script><iframe id='playerId' type='text/html' width='\(self.view.frame.size.width)' height='\(self.view.frame.size.height)' src='http://www.youtube.com/embed/\(videoID)?enablejsapi=1&rel=0&playsinline=1&autoplay=1' frameborder='0'></body></html>"
webView.loadHTMLString(embededHTML, baseURL: NSBundle.mainBundle().resourceURL)
結果:
嘿,我能問你問題嗎? 你如何控制webview的標題 - 這是:public image Ltd - ? 在我的應用程序中,當youtube在全屏模式下,屏幕的標題是如此奇怪:S它:Playback_controls_view_controller !!!爲什麼?@ _ @ ?! – Rawan 2015-12-14 13:23:33
@Rawan你應該問一個新問題。 – JAL 2015-12-14 15:05:52
我已經做了http://stackoverflow.com/q/34268267/4498576 – Rawan 2015-12-14 15:07:34