如何从Youtube IFRAME API回调到Android代码

时间:2017-01-26 00:40:08

标签: android youtube-api

我在我的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代码。

1 个答案:

答案 0 :(得分:0)

嗯,这个答案不能直接解决您使用IFRAME API的问题,但是,如果您想在应用程序中使用Android,请尝试考虑YouTube Android Player API而不是IFRAME API。

YouTube Android Player API可让您将视频播放功能整合到Android应用程序中。 API定义了加载和播放YouTube视频(和播放列表)以及自定义和控制视频播放体验的方法。

您还可以注册事件侦听器以获取某些事件的回调,例如加载视频的播放器或更改播放器状态。最后,API具有辅助功能,以支持方向更改以及过渡到全屏播放。

我希望这些信息对您有所帮助。