我已经编写了一个代码,可以在webview中播放youtube,它可以在不显示的情况下工作,但是在我最小化该应用程序时却不能。
我尝试了一切。总是有此警告:
含铬:[WARNING:HTMLMediaElement.cpp(1949)] currentPlaybackPosition readyState = 4,但没有webMeidaPlayer 提供currentPlaybackPosition
您对如何正确制作有任何想法吗?
这是我的代码:
public class MainActivity extends AppCompatActivity {
static WebView displayYoutubeVideo ;
@SuppressLint({"SetJavaScriptEnabled", "ResourceType"})
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN
);
displayYoutubeVideo = (WebView) findViewById(R.id.web);
displayYoutubeVideo.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;
}
});
displayYoutubeVideo.getSettings().setJavaScriptEnabled(true);
displayYoutubeVideo.getSettings().setAppCacheEnabled(true);
displayYoutubeVideo.getSettings().setLoadsImagesAutomatically(true);
displayYoutubeVideo.getSettings().setLoadWithOverviewMode(true);
displayYoutubeVideo.getSettings().setMediaPlaybackRequiresUserGesture(true);
displayYoutubeVideo.getSettings().setOffscreenPreRaster(true);
displayYoutubeVideo.getSettings().setSupportMultipleWindows(true);
displayYoutubeVideo.loadUrl("https://www.youtube.com/feed/trending");
}
@Override
protected void onPause(){
super.onPause();
}
@Override
protected void onResume(){
super.onResume();
}
@Override
protected void onStop(){
super.onStop();
}
@Override
protected void onDestroy() {
super.onDestroy();
}
public void goGoUrl(View view)
{
String url=((EditText)findViewById(R.id.url)).getText().toString();
if(!url.startsWith("https://"))
url="https://"+url;
displayYoutubeVideo.clearCache(true);
displayYoutubeVideo.getSettings().setJavaScriptEnabled(true);
displayYoutubeVideo.getSettings().setAppCacheEnabled(true);
displayYoutubeVideo.getSettings().setLoadsImagesAutomatically(true);
displayYoutubeVideo.getSettings().setLoadWithOverviewMode(true);
displayYoutubeVideo.getSettings().setOffscreenPreRaster(true);
displayYoutubeVideo.getSettings().setSupportMultipleWindows(true);
displayYoutubeVideo.getSettings().setMediaPlaybackRequiresUserGesture(true);
displayYoutubeVideo.loadUrl(url);
}
}
//A lot of useless setters.