我在我的android webview中加载了一个嵌入式youtube播放器,如下所示:
void loadYTVideoInWebView(String code) {
String frameVideo = "<html><body style='margin:0px;padding:0px;'>\n" +
" <script type='text/javascript' src='http://www.youtube.com/iframe_api'></script><script type='text/javascript'>\n" +
" var player;\n" +
" function onYouTubeIframeAPIReady()\n" +
" {player=new YT.Player('playerId',{events:{onReady:onPlayerReady}})}\n" +
" function onPlayerReady(event){player.playVideo();}\n" +
" </script>\n" +
" <iframe id='playerId' type='text/html' width='400' height='360'\n" +
" src='https://www.youtube.com/embed/"+code+"?enablejsapi=1&autoplay=1' frameborder='0'>\n" +
" </body></html>";
mWebView.loadDataWithBaseURL("http://www.youtube.com", frameVideo, "text/html", "utf-8", null);}
视频播放完毕后,我想向Android代码发送通知。我知道我们可以使用以下内容检测Javascript中的视频结尾:
function onPlayerStateChange(event) {
if(event.data === 0) {
alert('done');
}
}
我想知道是否可以从这里回调到Android代码。
答案 0 :(得分:0)
嗯,这个答案不能直接解决您使用IFRAME API的问题,但是,如果您想在应用程序中使用Android,请尝试考虑YouTube Android Player API而不是IFRAME API。
YouTube Android Player API可让您将视频播放功能整合到Android应用程序中。 API定义了加载和播放YouTube视频(和播放列表)以及自定义和控制视频播放体验的方法。
您还可以注册事件侦听器以获取某些事件的回调,例如加载视频的播放器或更改播放器状态。最后,API具有辅助功能,以支持方向更改以及过渡到全屏播放。
我希望这些信息对您有所帮助。