Android如何在webview上播放和浏览youtube视频

Android如何在webview上播放和浏览youtube视频,android,youtube,android-webview,Android,Youtube,Android Webview,我正在用Android开发一个应用程序,我应该能够在webview中传递youtube url,并在其中播放和浏览。到目前为止的进展是,我可以看到初始屏幕,但播放按钮没有播放视频。 在emulator中,它仍在播放声音,但在设备中,声音也无法播放,尽管我可以浏览youtube视频并执行所有其他功能。我发布了以下代码: public class YoutubePlayActivity extends Activity { String myUrl = "http://www.you

我正在用Android开发一个应用程序,我应该能够在webview中传递youtube url,并在其中播放和浏览。到目前为止的进展是,我可以看到初始屏幕,但播放按钮没有播放视频。 在emulator中,它仍在播放声音,但在设备中,声音也无法播放,尽管我可以浏览youtube视频并执行所有其他功能。我发布了以下代码:

    public class YoutubePlayActivity extends Activity {
    String myUrl = "http://www.youtube.com/watch?v=wvwnjWcG250&feature=related";
     wv1 = (WebView) findViewById(R.id.web);
    wv1.setWebViewClient(new myClient());
    wv1.loadUrl("http://www.youtube.com/watch?v=wvwnjWcG250&feature=related");
    wv1.getSettings().setJavaScriptEnabled(true);
    wv1.getSettings().setSupportZoom(true); 

    wv1.getSettings().setBuiltInZoomControls(true);

    wv1.getSettings().setPluginState(WebSettings.PluginState.ON);
    wv1.setWebChromeClient(new MyWebChromeClient());
    // TODO Auto-generated method stub
}

class myClient extends WebViewClient {
    @Override
    public void onPageFinished(WebView view, String url) {
        // TODO Auto-generated method stub
        super.onPageFinished(view, url);
    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        // TODO Auto-generated method stub

        view.loadUrl(url);
        return true;
    }

    @Override
    public void onReceivedError(WebView view, int errorCode,
            String description, String failingUrl) {
        // TODO Auto-generated method stub
        super.onReceivedError(view, errorCode, description, failingUrl);
    }

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

    try {
        Class.forName("android.webkit.WebView")
                .getMethod("onPause", (Class[]) null)
                            .invoke(wv1, (Object[]) null);

    } catch(ClassNotFoundException cnfe) {

    } catch(NoSuchMethodException nsme) {

    } catch(InvocationTargetException ite) {

    } catch (IllegalAccessException iae) {

    }
}
public class MyWebChromeClient extends WebChromeClient {

    @Override
    public void onShowCustomView(View view, CustomViewCallback callback) {
        // TODO Auto-generated method stub
        super.onShowCustomView(view, callback);
        if (view instanceof FrameLayout) {
            FrameLayout frame = (FrameLayout) view;
            if (frame.getFocusedChild() instanceof VideoView) {
                VideoView video = (VideoView) frame.getFocusedChild();
                frame.removeView(video);
                video.start();
            }
        }

    }
}
}