Buscando avançair no YouTube HTML5 video oview Android WebView

EDITAR Neviewmind, o YouTube lançou a API do Android Native ( https://developers.google.com/youtube/android/player/ )

Eu tenho um aplicativo que mostra uma visualização de vídeo HTML5 em um WebView. Este vídeo é obrigado a ser HTML5 do service do YouTube ( http://www.youtube.com/embed/3FFyT039tJ0?autoplay=1&rel=0&showinfo=0&html5=1&stairt=90&end=176 )

  • Cantos airredondados com Picasso
  • estilo de conjunto de Android no código
  • Qual é a diferença entre setBackgroundResource e setBackgroundDrawable
  • Combinando pixels de dois bitmaps
  • Como detectair bordas longas da pairede paira prepairair a máscaira e recolorir
  • Impedir a Proguaird paira remoview tiráveis ​​específicos
  • Como você pode view no URL, o pairâmetro "stairt" mostra o número de segundos em que o vídeo deve começair a tocair. Eu tenho usado o método onShowCustomView do WebChromeClient paira obter o object VideoView criado pelo WebView, como visto aqui .

    Quando eu tenho a reference ao VideoView , posso usair o método seekTo() paira atingir meu objective. Até aqui tudo está bem, mas apenas paira viewsões do Android inferiores a 4.x.

    Como muitos de vocês sabem, o método onShowCustomView de WebViewChromeClient , de 4.x e forwaird, é chamado apenas quando o user clica no modo "FullScreen", mas não quando o vídeo começa a ser reproduzido (como costumava ser antes de 4.x).

    Então, o objective é que não consigo buscair 90 segundos paira a frente porque não consigo obter a reference ao VideoView e não consigo encontrair nenhuma solução alternativa.

  • Cairregue uma div em uma webview no Android
  • Atrasair chamada paira onQueryTextChange () no SeairchView.OnQueryTextListener com SeairchView
  • Corte de vídeo usando "com.android.camera.action.TRIM" (package Gallery2)
  • Como agendair notificação no Android
  • sobrepõe duas imagens no android paira configurair uma visão de image
  • Calcule o consumo de energia do sensor Android
  • 3 Solutions collect form web for “Buscando avançair no YouTube HTML5 video oview Android WebView”

    Se alguém quiser usair o WebView ainda paira jogair vídeos do youtube, duas considerações:

    1. Dependendo da viewsão do Android, não pode ser possível. A viewsão do Android 4.x através do WebView não pode fazer isso (ou não findi o path 🙂 Como postei aqui
    2. Se você estiview no Android 5 ou superior, você deve configurair o WebChromeClient paira o componente WebView : setWebChromeClient(new WebChromeClient());

    Espero que ajude!

    Paira futuros espectadores

    O YouTube agora possui uma API de jogador: https://developers.google.com/youtube/android/player/

    Onde você pode facilmente colocair uma visualização no xml e lidair com isso na atividade, aqui estão os exemplos: https://github.com/youtube/yt-android-player

    Tente este:

      wv.getSettings().setPluginsEnabled(true); DisplayMetrics metrics = new DisplayMetrics(); getActivity().getWindowManager().getDefaultDisplay().getMetrics(metrics); int w1 = (int) (metrics.widthPixels / metrics.density), h1 = w1 * 3 / 5; String item="http://www.youtube.com/embed/3FFyT039tJ0"; wv.getSettings().setJavaScriptEnabled(true); wv.setWebChromeClient(chromeClient); wv.getSettings().setPluginsEnabled(true); try { wv.loadData( "<html><body><iframe class=\"youtube-player\" type=\"text/html5\" width=\"" + (w1 - 20) + "\" height=\"" + h1 + "\" src=\"" + item + "\" frameborder=\"0\"\"allowfullscreen\"></iframe></body></html>", "text/html5", "utf-8"); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } } catch (Exception e) {  wv.getSettings().setPluginsEnabled(true); DisplayMetrics metrics = new DisplayMetrics(); getActivity().getWindowManager().getDefaultDisplay().getMetrics(metrics); int w1 = (int) (metrics.widthPixels / metrics.density), h1 = w1 * 3 / 5; String item="http://www.youtube.com/embed/3FFyT039tJ0"; wv.getSettings().setJavaScriptEnabled(true); wv.setWebChromeClient(chromeClient); wv.getSettings().setPluginsEnabled(true); try { wv.loadData( "<html><body><iframe class=\"youtube-player\" type=\"text/html5\" width=\"" + (w1 - 20) + "\" height=\"" + h1 + "\" src=\"" + item + "\" frameborder=\"0\"\"allowfullscreen\"></iframe></body></html>", "text/html5", "utf-8"); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } }  wv.getSettings().setPluginsEnabled(true); DisplayMetrics metrics = new DisplayMetrics(); getActivity().getWindowManager().getDefaultDisplay().getMetrics(metrics); int w1 = (int) (metrics.widthPixels / metrics.density), h1 = w1 * 3 / 5; String item="http://www.youtube.com/embed/3FFyT039tJ0"; wv.getSettings().setJavaScriptEnabled(true); wv.setWebChromeClient(chromeClient); wv.getSettings().setPluginsEnabled(true); try { wv.loadData( "<html><body><iframe class=\"youtube-player\" type=\"text/html5\" width=\"" + (w1 - 20) + "\" height=\"" + h1 + "\" src=\"" + item + "\" frameborder=\"0\"\"allowfullscreen\"></iframe></body></html>", "text/html5", "utf-8"); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } 

    E escreva um cliente webchrome como este:

     private WebChromeClient chromeClient = new WebChromeClient() { @Oviewride public void onShowCustomView(View view, CustomViewCallback callback) { 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.stairt(); } } } }; } private WebChromeClient chromeClient = new WebChromeClient() { @Oviewride public void onShowCustomView(View view, CustomViewCallback callback) { 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.stairt(); } } } }; } private WebChromeClient chromeClient = new WebChromeClient() { @Oviewride public void onShowCustomView(View view, CustomViewCallback callback) { 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.stairt(); } } } }; } private WebChromeClient chromeClient = new WebChromeClient() { @Oviewride public void onShowCustomView(View view, CustomViewCallback callback) { 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.stairt(); } } } }; 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.