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

问题描述 投票:1回答:1

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

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

ios swift swift3 uiwebview wkwebview
1个回答
0
投票

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

 typedef NS_ENUM(NSInteger, YTPlayerState) {
    kYTPlayerStateUnstarted,
    kYTPlayerStateEnded,
    kYTPlayerStatePlaying,
    kYTPlayerStatePaused,
    kYTPlayerStateBuffering,
    kYTPlayerStateQueued,
    kYTPlayerStateUnknown
};
© www.soinside.com 2019 - 2024. All rights reserved.