gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 09:11:20 25 4
gpt4 key购买 nike

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

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

最佳答案

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

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

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)

结果:

enter image description here

关于ios - 在 iOS 应用程序中播放嵌入的 YouTube 视频,而不是全屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29245935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com