gpt4 book ai didi

ios - 如何在 iOS swift 中自动播放 youtube 视频(无需用户交互)

转载 作者:搜寻专家 更新时间:2023-11-01 07:18:20 27 4
gpt4 key购买 nike

我正在尝试使用 YTplayer 自动播放 youtube 视频并使用 VideoID 加载 Youtube 视频,我也曾尝试在 Webview 中使用 loadHTMLString。iOS 不允许自动播放 youtube 吗?

这是我的代码:1) 使用 YTplayer

let fullNameArr = video_url!.componentsSeparatedByString("=")
let video: String = fullNameArr[1]
enYTplayer.webView?.mediaPlaybackRequiresUserAction = false
YTplayer.webView?.allowsInlineMediaPlayback = true
YTplayer.loadWithVideoId(video)
YTplayer.playVideo()

2) 使用 webView (iframe)

let vidurl = "https://www.youtube.com/embed/LG-_Dz6nseQ"
yutub_webview.loadHTMLString("<iframe width=\"\(yutub_webview.frame.size.width)\" hight=\"\(yutub_webview.frame.size.height)\" src=\"\(vidurl)?playsinline=1\" frameborder=\"0\" allowfullscreen & autoplay=1 &showinfo=0 &controls=0 autohide=1></iframe>", baseURL: nil)

3) 使用 HTML

let youTubeVideoHTML :NSString = "<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:'204', videoId:'8LVN7WVgx0c', events: { 'onReady': onPlayerReady } }); } function onPlayerReady(event) { event.target.playVideo(); } </script> </body> </html>";
yutub_webview.loadHTMLString(youTubeVideoHTML as String,baseURL:nil)

也尝试了这个:

yutub_webview.loadHTMLString("<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='300' height='200' src='http://www.youtube.com/embed/LG-_Dz6nseQ? enablejsapi=1&rel=0&playsinline=1&autoplay=1' frameborder='0'></body></html>",baseURL: NSBundle.mainBundle().bundleURL)

但默认播放按钮仍然存在,视频不会自动播放。谁能告诉我我做错了什么?

最佳答案

经过多次冲浪,我找到了解决方案:

只需添加YTPlayerView Delegate的委托(delegate)

并使用它的方法-

func playerViewDidBecomeReady(playerView: YTPlayerView) {
YTplayer.playVideo()
}

关于ios - 如何在 iOS swift 中自动播放 youtube 视频(无需用户交互),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40590999/

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