我可以使用出色的库https://github.com/pingpongboss/StandOut创建一个浮动弹出窗口。据我所知,这个库创建了一个创建弹出窗口的服务。
适用于Android的Youtube API提供了YouTubePlayerView,它只能与YoutubeBaseActivity一起使用,而我无法使用,因为浮动弹出窗口属于某项服务。
Youtube API还提供了YoutubePlayerFragment,它也无法使用,因为服务无法使用片段。
还有可以在这里使用的WebView,它不如Android的Youtube API那么好,但总比没有好。它几乎适合我。 WebView显示在浮动弹出窗口内,正在播放视频,但视频只是黑色。
这是WebView代码
private static final String FRAME_VIDEO = "<html><body>Video From YouTube<br><iframe width=\"320\" height=\"280\" src=\"https://www.youtube.com/embed/_oEA18Y8gM0\" frameborder=\"0\"></iframe></body></html>";
WebView webView = (WebView) findViewById(R.id.webView);
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;
}
});
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setPluginState(WebSettings.PluginState.ON);
webView.setWebChromeClient(new WebChromeClient());
webView.loadData(FRAME_VIDEO, "text/html", "utf-8");
也许其中一个选项是可能的:
以某种方式使用没有YouTubeBaseActivity的YoutubePlayerView
使用没有活动的片段
修复WebView代码
也许还有其他方法可以在浮动弹出窗口中播放YouTube视频