Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.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应用程序中播放嵌入式YouTube视频,而不是全屏_Ios_Swift_Youtube_Uiwebview_Youtube Api - Fatal编程技术网

在iOS应用程序中播放嵌入式YouTube视频,而不是全屏

在iOS应用程序中播放嵌入式YouTube视频,而不是全屏,ios,swift,youtube,uiwebview,youtube-api,Ios,Swift,Youtube,Uiwebview,Youtube Api,我正试图通过UIWebView在应用程序中播放YouTube视频。我意识到这很容易,但视频会自动全屏播放。有没有办法不全屏播放,而且当UIWebView的大小改变时,视频大小也会改变?我正在寻找Swift的答案 我在上找到了一个可能的答案,但它是用Objective-C编写的,我发现很难翻译。要回答您的第一个问题,每次UIWebView更改大小时,iFrame播放器都会重新加载。你不能改变这一点 至于设置,您需要在运行时动态获取设备的宽度和高度,并将它们传递给UIWebView和player构造

我正试图通过UIWebView在应用程序中播放YouTube视频。我意识到这很容易,但视频会自动全屏播放。有没有办法不全屏播放,而且当UIWebView的大小改变时,视频大小也会改变?我正在寻找Swift的答案


我在上找到了一个可能的答案,但它是用Objective-C编写的,我发现很难翻译。

要回答您的第一个问题,每次UIWebView更改大小时,iFrame播放器都会重新加载。你不能改变这一点

至于设置,您需要在运行时动态获取设备的宽度和高度,并将它们传递给UIWebView和player构造函数。这将播放视频“内联”,但全屏播放。将您想要的任何宽度和高度值传递到构造函数中,以允许在线播放,而无需将视频弹出到其全屏播放器

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)
let-webView=UIWebView(frame:self.view.frame)
self.view.addSubview(webView)
self.view.bringSubviewToFront(webView)
webView.allowsInlineMediaPlayback=true
webView.mediaplaybackrequiresseraction=false
让videoID=“zN GGeNPQEg”/https://www.youtube.com/watch?v=zN-根普基格
让embeddedHTML=“function onyoutubeiframeapiredy(){ytplayer=new YT.Player('playerId',{events:{onReady:onPlayerReady}}}})函数onPlayerReady(a){a.target.playVideo();}”
webView.loadHTMLString(EmbeddedHTML,baseURL:NSBundle.mainBundle().resourceURL)
结果:


嘿,我能问你一个问题吗?您如何控制webview的标题-即:public image Ltd-?在我的应用程序中,当youtube全屏播放时,屏幕的标题很奇怪:它是:播放\控制\查看\控制!!!@@@为什么@Rawan你应该问一个新问题。设置宽度和高度对我的情况没有帮助。。。还有其他想法吗?