如何使用webView在后台播放YouTube?

时间:2018-07-06 21:22:19

标签: java android youtube


我已经编写了一个代码,可以在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.

0 个答案:

没有答案