2013-07-06 79 views
3

在我的项目中使用webview加载使用iframe的视频url概念,但是调用下一个inten不能停止播放声音或暂停视频。或其他任何网页视图编码装载仪视频如何在android中停止Webview视频

我的代码:

public class Webviewfullscreen extends Activity { 

    WebView webview; 
    LinearLayout webViewPlaceholder; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.webviewfull); 
     webViewPlaceholder=(LinearLayout) findViewById(R.id.webViewholder); 
     String VideoUrl=this.getIntent().getExtras().getString("url"); 
     webview = (WebView) findViewById(R.id.webView1); 
     webViewDisplay(VideoUrl, webview); 
    } 
    private void webViewDisplay(final String weburl, final WebView www) { 
     new Handler().post(new Runnable() { 
      @SuppressWarnings("deprecation") 
      @Override 
      public void run() { 

       WebSettings settings = www.getSettings(); 
       String Url = "<html> <head> <style type=text/css> iframe {height:100%;width:100%;margin:0;padding:0;overflow:scroll;} body {background-color:#000; margin:0;}</style> </head> <body> <iframe width=240px height=220px src=" 
         + weburl 
         + " frameborder=0 webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></body></html>"; 

       settings.setLightTouchEnabled(true); 

       www.getSettings().setJavaScriptEnabled(true); 
       if (Build.VERSION.SDK_INT < 8) { 
        www.getSettings().setPluginsEnabled(true); 
       } else { 
        www.getSettings().setPluginState(PluginState.ON); 
       } 
       www.setWebChromeClient(new WebChromeClient()); 

       www.loadDataWithBaseURL(null, Url, "text/html", "utf-8", null); 
      } 
     }); 
    } 
    @Override 
    protected void onDestroy() { 
     // TODO Auto-generated method stub 
     super.onDestroy(); 

    } 
    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { 
      // do something on back. 
      System.out.println("on finish"); 
      webViewPlaceholder.removeView(webview); 
      webview.loadUrl(""); 
      webview.removeAllViews(); 
      webview.destroy(); 

      webview = null; 
      finish(); 
      return true; 
     } 

     return super.onKeyDown(keyCode, event); 
    } 

} 

请帮助如何停止视频

+0

为什么不使用VideoView? – Enrichman

+1

@Enrichman,因为有时WebView是首选。 – TonyCruze

回答

5

这是一个小哈克,但如果你想有一个暂停/播放当你的活动熄灭/在视频中,在你的活动使用:

@Override 
public void onPause() 
{ 
    super.onPause(); 
    toggleWebViewState(true); 
} 

@Override 
public void onResume() 
{ 
    super.onResume(); 
    toggleWebViewState(false); 
} 

private void toggleWebViewState(boolean pause) 
{   
    try 
    { 
     Class.forName("android.webkit.WebView") 
     .getMethod(pause 
       ? "onPause" 
       : "onResume", (Class[]) null) 
     .invoke(webview, (Object[]) null); 
    } 
    catch (Exception e){} 
} 
+0

对不起YouTube视频在webview里面的iframe播放,不停止.. – ajey

3

花费大量的时间后,我得到的结论暂停视频正在玩HTML的WebView iframe概念。

只需重写Activity或Fragment上的onPause()方法,您可以使用webView并调用WebView onPause()方法。这个对我有用。

@Override 
public void onPause() { 
    super.onPause(); 
    mWebView.onPause(); 
} 

将此答案发布时间较晚,但可能对其他人有帮助。

+0

不工作.... – ajey

+0

什么是你的应用程序minSdkVersion?它为我minSdk = 14工作。 –

+0

任何其他解决方案minSdk = 8 .. – ajey

0

我刚上暂停方法,我设置卷筒纸空白

webview.loadurl( “”); 它适用于MW,只是尝试它。