2

私は Android でアプリケーションを開発しています。そこでは、webview で youtube の URL を渡し、それを再生してサーフィンできるはずです。これまでの進捗状況は、初期画面は表示されていますが、再生ボタンでビデオが再生されていません。エミュレーターではまだサウンドを再生していますが、デバイスではサウンドも再生されていませんが、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();
            }
        }

    }
}

}

4

0 に答える 0