Reproducción de vídeos de YouTube sin problemas en la vista web

Estoy construyendo una aplicación donde un usuario puede ver unaYouTube Video y puede ver las imágenes para las que el enlace proviene del servidor. JugarYouTube El valor de la clave de inserción de video proviene del servidor como

`<div id =" _ cvp_11204 "> <span> </span> </div> <script type =" text / javascript "> (function () {var a; a = new XMLHttpRequest; a.onreadystatechange = function () {r = a.readyState; if (4 == rs && 200 == a.status) {var c = JSON.parse (a.responseText), b; para (b in c.payload) if (c.payload.hasOwnProperty ( b)) {var d = c.payload [b]; document.getElementById ("CVP"+ b) .innerHTML = d.view}}}; a.open (" GET ","http://dummyurl.com/media.ids=?11134&nbsp;)); a.send ()}) (ventana);

&lt;/script&gt;`

Y también puedo reproducir el video, pero tengo algunos problemas en términos de rendimiento.

1) a veces las voces comienzan pero el video comienza a mostrarse después de un tiempo.

2) En algún momento los controles no aparecen.

3) ¿Cómo puedo reproducir el video directamente en modo de pantalla completa? Actualmente, para reproducir el video en modo de pantalla completa tengo que hacer clic en el control máximo para reproducirlo.

Como es la clase de actividad para webview

public class MainActivity extends Activity {

    protected FrameLayout webViewPlaceholder;
    protected WebView webView;
    private FrameLayout mContentView;
    private MyWebChromeClient mWebChromeClient = null;
    private View mCustomView;
    private FrameLayout mCustomViewContainer;
    private WebChromeClient.CustomViewCallback mCustomViewCallback;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        System.out.println("Oncreate is getting called ---------------------------");
        // Initialize the UI
        if(savedInstanceState == null){
            initUI();   
        }

      }

      protected void initUI()
      {
        // Retrieve UI elements
        webViewPlaceholder = ((FrameLayout)findViewById(R.id.webViewPlaceholder));
        mContentView = webViewPlaceholder;
        // Initialize the WebView if necessary
        if (webView == null)
        {
            System.out.println("webView == null -----------------------------------");
          // Create the webview
          webView = new WebView(this);
          webView.setLayoutParams(new ViewGroup.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
          WebSettings webSettings = webView.getSettings();
          webSettings.setJavaScriptEnabled(true);
            webSettings.setDomStorageEnabled(true);
            webSettings.setAllowContentAccess(true);
            webSettings.setDomStorageEnabled(true);
            webSettings.setRenderPriority(RenderPriority.HIGH);     
            webSettings.setUseWideViewPort(false);
            webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
            webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
            //--------------------------------------------------------
            if (Build.VERSION.SDK_INT < 8) {
                webSettings.setPluginsEnabled(true);
            } else {
                webSettings.setPluginState(PluginState.ON);
            }
          mWebChromeClient = new MyWebChromeClient();
          webView.setWebChromeClient(mWebChromeClient);
          // Load the URLs inside the WebView, not in the external web browser
          //webView.setWebViewClient(new WebViewClient());
          // Load a page
          loadWebView("asfas");
        }



        // Attach the WebView to its placeholder
        webViewPlaceholder.addView(webView);
      }

      private void loadWebView(final String url) {
            String s = ReadFromfile("link.txt", MainActivity.this);

            s = "<html><body>"+s+"</body></html>";
            webView.loadDataWithBaseURL("",Html.fromHtml(s).toString(),"text/html", "UTF-8",null);
        }

        public String ReadFromfile(String fileName, Context context) {
            StringBuilder ReturnString = new StringBuilder();
            InputStream fIn = null;
            InputStreamReader isr = null;
            BufferedReader input = null;
            try {
                fIn = context.getResources().getAssets()
                        .open(fileName, context.MODE_WORLD_READABLE);
                isr = new InputStreamReader(fIn);
                input = new BufferedReader(isr);
                String line = "";
                while ((line = input.readLine()) != null) {
                    ReturnString.append(line);
                }
            } catch (Exception e) {
                e.getMessage();
            } finally {
                try {
                    if (isr != null)
                        isr.close();
                    if (fIn != null)
                        fIn.close();
                    if (input != null)
                        input.close();
                } catch (Exception e2) {
                    e2.getMessage();
                }
            }
            return ReturnString.toString();
        }


      @Override
      public void onConfigurationChanged(Configuration newConfig)
      {
        if (webView != null)
        {
          // Remove the WebView from the old placeholder
        System.out.println("web view is removed from the holder -------------------------");    
          webViewPlaceholder.removeView(webView);
        }

        super.onConfigurationChanged(newConfig);

        // Load the layout resource for the new configuration
        setContentView(R.layout.activity_main);

        // Reinitialize the UI
        initUI();
      }

      @Override
      protected void onSaveInstanceState(Bundle outState)
      {
        super.onSaveInstanceState(outState);
        System.out.println("onSaveInstanceState -------------------------");    
        // Save the state of the WebView
        webView.saveState(outState);
      }

      @Override
      protected void onRestoreInstanceState(Bundle savedInstanceState)
      {
        super.onRestoreInstanceState(savedInstanceState);
        System.out.println("onRestoreInstanceState -------------------------"); 
        // Restore the state of the WebView
        webView.restoreState(savedInstanceState);
      }
      private class MyWebChromeClient extends WebChromeClient {
            FrameLayout.LayoutParams LayoutParameters = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT,
                    FrameLayout.LayoutParams.MATCH_PARENT);

            @Override
            public void onShowCustomView(View view, CustomViewCallback callback) {
                // if a view already exists then immediately terminate the new one
                if (mCustomView != null) {
                    callback.onCustomViewHidden();
                    return;
                }

                mContentView.setVisibility(View.GONE);
                mCustomViewContainer = new FrameLayout(MainActivity.this);
                mCustomViewContainer.setLayoutParams(LayoutParameters);
                mCustomViewContainer.setBackgroundResource(android.R.color.black);
                view.setLayoutParams(LayoutParameters);
                // Sometimes getting remove view first it parent excepetion on moto devices
                //webViewPlaceholder.removeView(webView);
                mCustomViewContainer.addView(view);
                mCustomView = view;
                mCustomViewCallback = callback;
                mCustomViewContainer.setVisibility(View.VISIBLE);
                setContentView(mCustomViewContainer);
            }

            @Override
            public void onHideCustomView() {
                if (mCustomView == null) {
                    return;
                } else {
                    // Hide the custom view.  
                    mCustomView.setVisibility(View.GONE);
                    // Remove the custom view from its container.  
                    mCustomViewContainer.removeView(mCustomView);
                    mCustomView = null;
                    mCustomViewContainer.setVisibility(View.GONE);
                    mCustomViewCallback.onCustomViewHidden();
                    // Show the content view.  
                    mContentView.setVisibility(View.VISIBLE);
                    setContentView(mContentView);
                }
            }

        }

}

Y en Manifiesto también he puesto lahardwareaccelarated = true. Aquí está el video cuando comienza con los controles.

y aquí, cuando hago clic en el botón Maximizar, el video se muestra en pantalla completa, lo que quiero sin hacer clic en el botón Máx, pero el video debe reproducirse directamente en modo de pantalla completa.

Así que principalmente, ¿cómo puedo acelerar y aumentar el rendimiento de miWebView?