Как остановить воспроизведение видео с YouTube в Android WebView? - PullRequest
62 голосов
/ 10 мая 2011

Как я могу остановить видео на YouTube, которое воспроизводится в моем веб-просмотре?Когда я нажимаю кнопку «Назад», видео не останавливается, а продолжается в фоновом режиме.

Код:

webView = (WebView) findViewById(R.id.webview); 
webView.getSettings().setPluginsEnabled(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setBuiltInZoomControls(false); 
webView.getSettings().setSupportZoom(false);
webView.loadData(myUrl,"text/html", "utf-8");

Ответы [ 17 ]

1 голос
/ 23 января 2015

Это работает для меня.

@Override
protected void onPause() {
    super.onPause();
    if (wViewCampaign != null){
        wViewCampaign.stopLoading(); 
        wViewCampaign.loadUrl("");
        wViewCampaign.reload();
        wViewCampaign = null;
    }
}
0 голосов
/ 22 мая 2018

Приведенный выше подход не работает для меня, который работал для меня:

0 голосов
/ 05 января 2016

Этот код отлично подходит для меня.

 @Override protected void onPause() {
    super.onPause();
    wv.onPause();
    wv.pauseTimers();
}
    @Override protected void onResume() {
    super.onResume();
    wv.resumeTimers();
    wv.onResume();
}
0 голосов
/ 19 ноября 2015

Это то, что в итоге сработало после попытки каждого кода, представленного на этой странице. Уфф!

@Override
protected void onPause() {
    super.onPause();
    if (mWebView != null) {
        mWebView.stopLoading();
        mWebView.reload();
    }
}

@Override
protected void onResume() {
    super.onResume();
}
0 голосов
/ 12 марта 2019

Я попробовал все вышеприведенные ответы, но большинство из них не работают для меня. так что я просто пишу свое собственное решение, которое отлично работает во всех типах медиафайлов, играющих в webview

 String lastUrl = "";
 @Override
    public void onPause() {
        super.onPause();
        lastUrl =  webView.getUrl();
        webView.loadUrl("");
    }

    @Override
    protected void onResume() {
        super.onResume();
        webView.loadUrl(lastUrl);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        webView = null;
    }
0 голосов
/ 15 июля 2019

В моей ситуации проигрыватель продолжает работать после того, как WebView "onPause".Поэтому я проверяю, прикреплен ли WebView к окнам перед воспроизведением видео или музыки.

Это метод JavaScriptInterface для проверки «isAttachedToWindow ()» WebView, возвращающего true / false.не забудьте вызвать onPause / onResume в Activity / Fragment.)

0 голосов
/ 24 июня 2015

Вы можете сделать это, используя метод onPause() WebView, когда выполняется метод onPause() вашего Activity:

@override
public void onPause() {
        super.onPause();
        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){
          webview.onPause();
        }
}
  • работает для API >= 11 (Honeycomb)
...