如何在WKWebView中检测视频播放器的播放/暂停事件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在WKWebView中检测视频播放器的播放/暂停事件?相关的知识,希望对你有一定的参考价值。

考虑使用嵌入式代码,在Web视图中播放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播放器,需要跟踪来自任何类型的视频播放器的播放/暂停事件。

有人可以给我带头吗?关于如何跟踪事件?

答案

请使用此网址中的“YTPlayerView”https://github.com/youtube/youtube-ios-player-helper您可以使用此库中的以下Enum。

 typedef NS_ENUM(NSInteger, YTPlayerState) {
    kYTPlayerStateUnstarted,
    kYTPlayerStateEnded,
    kYTPlayerStatePlaying,
    kYTPlayerStatePaused,
    kYTPlayerStateBuffering,
    kYTPlayerStateQueued,
    kYTPlayerStateUnknown
};

以上是关于如何在WKWebView中检测视频播放器的播放/暂停事件?的主要内容,如果未能解决你的问题,请参考以下文章

如何检测在 WKWebView 中播放的电影?

如何在WKWebView中禁用YouTube视频的自动播放?

如何使用wkwebview在我的应用程序中自动播放视频

如何检测 WKWebView 正在关闭,来自 javascript

avplayer 和 wkwebview 视频播放

如何在 wkwebview 视频中禁用自动启动 AVPlayer