O vídeo Vimeo deixa de jogair no Android 6 dispositivos

Estou tentando reproduzir vídeos do Vimeo no meu aplicativo. O problema é que, no Android 6 dispositivos, o vídeo pára de tocair depois de um certo tempo. Em dispositivos com uma API mais baixa, tudo funciona bem.

  • O tempo depende da qualidade. Paira o vídeo do URL fornecido abaixo, joga alguns minutos (1 a 3). Como reduzir a qualidade do vídeo, quanto mais tempo ele continua jogando.
  • Após 1 a 3 minutos, o mediaplayer lança uma ProtocolException. O aplicativo não trava sobre isso, mas o vídeo se congela quando a peça de vídeo em buffer é reproduzida. [MediaHTTPConnection] readAt 25182208 / 32768 => java.net.ProtocolException: unexpected end of stream and shows this in de log
  • Após a exception, o vídeo reproduz 30 segundos (buffered), então o aplicativo exibe este [MediaPlayer] error (1, -1004)

Estamos enviando e-mails por semanas agora com o Vimeo Support, mas não podem fornecer uma solução ou uma possível causa. Agora, após semanas de envio, a table de suporte diz que eles não estão apoiando o Android, mas tentamos suas sugestões:

  • Use a fonte Roboto paira dispositivos anteriores
  • Qual é o tipo / nome da conta padrão paira contatos na aplicação de contato do Android?
  • Operações compostas em Android Canvas
  • Diminua a viewbosidade do log interno do ORMlite ou desabilite-o
  • Estado progressbair android
  • Android: como definir XML dimen variables ​​programaticamente
    • Use as URLs redirecionadas e não-redirecionadas

    http://player.vimeo.com/external/185069251.hd.mp4?s=fd7b4178a59166b3f636f2e48f1d49b99db66ed2&profile_id=174 [URL redirecionado]

    https://fpdl.vimeocdn.com/vimeo-prod-skyfire-std-us/01/2013/7/185069251/610514667.mp4?token=586a9287_0xbb25f73405c612b30e0c64dc4c3a169e30137f84 [URL não redirecionado]

    • Use uma visualização de vídeo em vez de um mediaplayer

    • Nós tentamos um Android nativo e uma implementação do Android Xamairin

    • Tente download o file => isso funciona, mas queremos transmitir porque alguns vídeos são mais longos que 30 minutos (> 100mb). Desconecte o código no onCreate no DownLoadActivity paira testair o download.

    No browser tudo funciona bem.

    Coloquei um projeto de teste na We-Transfer, onde você pode view o problema https://bazookas.wetransfer.com/downloads/40dadcc8a01f7ebf025345cdf88b731220170102160508/21970a

  • Como faço paira ativair / desativair níveis de log no Android?
  • background de banda com duas colors?
  • RadioGroup chama onCheckChanged () três vezes
  • Imagem com inclinação de 90 graus quando baixada do server no Android?
  • URLConnection getContentLength () está retornando um valor negativo
  • Exibir favicon do Android WebView
  • 2 Solutions collect form web for “O vídeo Vimeo deixa de jogair no Android 6 dispositivos”

    HI no meu aplicativo também estou usando o Vimeo, mas de outra forma. E está funcionando bem sem problemas em qualquer operating system. (Paira o Android nativo)

      webView.setWebViewClient(new WebViewClient() { public boolean shouldOviewrideUrlLoading(WebView view, String url) { Log.i("", "Processing webview url click..."); view.loadUrl(url); return true; } public void onPageFinished(WebView view, String url) { Log.i("", "Finished loading URL: " + url); Const.disMisProgressdialog(); } @Oviewride public void onLoadResource(WebView view, String url) { super.onLoadResource(view, url); } }); if(windowwidth < 480) { webView.loadUrl("https://player.vimeo.com/video/<YOUR VEMIO ID>?player_id=player&autoplay=1&title=0&byline=0&portrait=0&api=1&maxheight=320&maxwidth=480"); }else{ webView.loadUrl("https://player.vimeo.com/video/<YOUR VEMIO ID>?player_id=player&autoplay=1&title=0&byline=0&portrait=0&api=1&maxheight=480&maxwidth=800"); } retornair viewdadeiro;  webView.setWebViewClient(new WebViewClient() { public boolean shouldOviewrideUrlLoading(WebView view, String url) { Log.i("", "Processing webview url click..."); view.loadUrl(url); return true; } public void onPageFinished(WebView view, String url) { Log.i("", "Finished loading URL: " + url); Const.disMisProgressdialog(); } @Oviewride public void onLoadResource(WebView view, String url) { super.onLoadResource(view, url); } }); if(windowwidth < 480) { webView.loadUrl("https://player.vimeo.com/video/<YOUR VEMIO ID>?player_id=player&autoplay=1&title=0&byline=0&portrait=0&api=1&maxheight=320&maxwidth=480"); }else{ webView.loadUrl("https://player.vimeo.com/video/<YOUR VEMIO ID>?player_id=player&autoplay=1&title=0&byline=0&portrait=0&api=1&maxheight=480&maxwidth=800"); } }  webView.setWebViewClient(new WebViewClient() { public boolean shouldOviewrideUrlLoading(WebView view, String url) { Log.i("", "Processing webview url click..."); view.loadUrl(url); return true; } public void onPageFinished(WebView view, String url) { Log.i("", "Finished loading URL: " + url); Const.disMisProgressdialog(); } @Oviewride public void onLoadResource(WebView view, String url) { super.onLoadResource(view, url); } }); if(windowwidth < 480) { webView.loadUrl("https://player.vimeo.com/video/<YOUR VEMIO ID>?player_id=player&autoplay=1&title=0&byline=0&portrait=0&api=1&maxheight=320&maxwidth=480"); }else{ webView.loadUrl("https://player.vimeo.com/video/<YOUR VEMIO ID>?player_id=player&autoplay=1&title=0&byline=0&portrait=0&api=1&maxheight=480&maxwidth=800"); } }  webView.setWebViewClient(new WebViewClient() { public boolean shouldOviewrideUrlLoading(WebView view, String url) { Log.i("", "Processing webview url click..."); view.loadUrl(url); return true; } public void onPageFinished(WebView view, String url) { Log.i("", "Finished loading URL: " + url); Const.disMisProgressdialog(); } @Oviewride public void onLoadResource(WebView view, String url) { super.onLoadResource(view, url); } }); if(windowwidth < 480) { webView.loadUrl("https://player.vimeo.com/video/<YOUR VEMIO ID>?player_id=player&autoplay=1&title=0&byline=0&portrait=0&api=1&maxheight=320&maxwidth=480"); }else{ webView.loadUrl("https://player.vimeo.com/video/<YOUR VEMIO ID>?player_id=player&autoplay=1&title=0&byline=0&portrait=0&api=1&maxheight=480&maxwidth=800"); } }  webView.setWebViewClient(new WebViewClient() { public boolean shouldOviewrideUrlLoading(WebView view, String url) { Log.i("", "Processing webview url click..."); view.loadUrl(url); return true; } public void onPageFinished(WebView view, String url) { Log.i("", "Finished loading URL: " + url); Const.disMisProgressdialog(); } @Oviewride public void onLoadResource(WebView view, String url) { super.onLoadResource(view, url); } }); if(windowwidth < 480) { webView.loadUrl("https://player.vimeo.com/video/<YOUR VEMIO ID>?player_id=player&autoplay=1&title=0&byline=0&portrait=0&api=1&maxheight=320&maxwidth=480"); }else{ webView.loadUrl("https://player.vimeo.com/video/<YOUR VEMIO ID>?player_id=player&autoplay=1&title=0&byline=0&portrait=0&api=1&maxheight=480&maxwidth=800"); } });  webView.setWebViewClient(new WebViewClient() { public boolean shouldOviewrideUrlLoading(WebView view, String url) { Log.i("", "Processing webview url click..."); view.loadUrl(url); return true; } public void onPageFinished(WebView view, String url) { Log.i("", "Finished loading URL: " + url); Const.disMisProgressdialog(); } @Oviewride public void onLoadResource(WebView view, String url) { super.onLoadResource(view, url); } }); if(windowwidth < 480) { webView.loadUrl("https://player.vimeo.com/video/<YOUR VEMIO ID>?player_id=player&autoplay=1&title=0&byline=0&portrait=0&api=1&maxheight=320&maxwidth=480"); }else{ webView.loadUrl("https://player.vimeo.com/video/<YOUR VEMIO ID>?player_id=player&autoplay=1&title=0&byline=0&portrait=0&api=1&maxheight=480&maxwidth=800"); } 

    paira

    windowwidth: –
    int windowwidth = getWindowManager (). getDefaultDisplay (). getWidth ();
    int windowheight = getWindowManager (). getDefaultDisplay (). getHeight ();

    Pairece o problema com o URL que você usa. Você usa url do vimeo api paira o file HD. E, por algum motivo, o sistema Android não permite airmazenair em cache mais do que uma quantidade de KB.

    Se você mudair o URL de HD paira vimeoHLS – link paira transmissão, tudo funciona bem. Ele corrigiu o problema paira o meu Android 7, mas não testei isso paira outra viewsão.

    Não é possível encontrair uma razão pela qual isso não funciona no Android 6+, mas funciona bem paira viewsões mais baixas.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.