如何在 WKWebView 中检测视频播放器的播放/暂停事件?
Posted
技术标签:
【中文标题】如何在 WKWebView 中检测视频播放器的播放/暂停事件?【英文标题】:How can I Detect Play/Pause events of a video player in WKWebView? 【发布时间】:2018-03-01 11:02:32 【问题描述】:假设有一个 youtube 视频正在网络视图中播放,使用嵌入式代码,
let videoID = "oxtP3wxXlTA" // https://www.youtube.com/watch?v=oxtP3wxXlTA
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=100% height=100% src='http://www.youtube.com/embed/\(videoID)?modestbranding=1?enablejsapi=1&rel=0&playsinline=1&autoplay=1' frameborder='0'></body></html>"
videoPlayerWebView.loadHTMLString(embededHTML as String, baseURL:Bundle.main.resourceURL )
是否有任何选项可以使用本机 Swift 代码跟踪视频播放器的播放或暂停事件?我尝试了很多 javascript 代码,但没有奏效,我还需要本机 swift 或 ObjectiveC 代码。
另一个主要问题是,它可以是任何播放器,而不仅仅是 youtube 播放器,需要跟踪来自任何类型的视频播放器的播放/暂停事件。
有人可以指导我吗?关于如何追踪事件?
【问题讨论】:
【参考方案1】:请使用此网址中的“YTPlayerView”https://github.com/youtube/youtube-ios-player-helper 您可以使用此库中的以下枚举。
typedef NS_ENUM(NSInteger, YTPlayerState)
kYTPlayerStateUnstarted,
kYTPlayerStateEnded,
kYTPlayerStatePlaying,
kYTPlayerStatePaused,
kYTPlayerStateBuffering,
kYTPlayerStateQueued,
kYTPlayerStateUnknown
;
【讨论】:
不,我正在尝试创建一个代码,它将收听正在 web 视图上播放的所有视频,而不仅仅是 Youtube。如果您有与此相关的内容,请分享,不过,感谢您的努力!以上是关于如何在 WKWebView 中检测视频播放器的播放/暂停事件?的主要内容,如果未能解决你的问题,请参考以下文章
如何在WKWebView中禁用YouTube视频的自动播放?