4

私のプロジェクトでは、webview を使用して iframe の概念を使用してビデオの URL をロードしていますが、次のインテンを呼び出すと、再生中のサウンドを停止したり、ビデオを一時停止したりできません。または 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);
    }

}

動画を止める方法を教えてください

4

3 に答える 3

6

少しハックですが、アクティビティがオフ/オンになったときにビデオを一時停止/再生したい場合は、アクティビティでこれを使用します。

@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){}
}
于 2013-09-27T09:18:43.470 に答える
3

多くの時間を費やした後、HTML の WebView iframe コンセプトで再生しているビデオを一時停止するという結論に達しました。

アクティビティまたはフラグメントで onPause() メソッドをオーバーライドするだけで、webView を使用して WebView の onPause() メソッドを呼び出すことができます。わたしにはできる。

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

この回答を遅く投稿しますが、他の人に役立つかもしれません。

于 2014-08-19T09:51:52.817 に答える
1

メソッドで、以下onPause()のように webview を空白の URL に設定します。

webview.loadurl("");

それは私にとってはうまくいきます。試してみてください。

于 2015-10-06T08:50:46.110 に答える