android vimeo vimeo-android

El video de Vimeo deja de reproducirse en dispositivos Android 6



vimeo-android (2)

Estoy tratando de reproducir videos de Vimeo en mi aplicación. El problema es que en los dispositivos Android 6, el video se detiene después de cierto tiempo. En los dispositivos con una API más baja, todo funciona bien.

  • El tiempo depende de la calidad. Para el video de las url proporcionadas a continuación se reproducen unos minutos (1 a 3). Qué tan baja es la calidad del video por cuánto tiempo se sigue reproduciendo.
  • Después de 1 a 3 minutos, el mediaplayer lanza una excepción ProtocolException. La aplicación no falla en esto, pero el video se congela cuando se reproduce la pieza de video almacenada. [MediaHTTPConnection] readAt 25182208 / 32768 => java.net.ProtocolException: unexpected end of stream and shows this in de log
  • Después de la excepción, el video se reproduce 30 segundos (almacenado en búfer), luego la aplicación genera este [MediaPlayer] error (1, -1004)

Estamos enviando un correo electrónico durante semanas con el soporte de Vimeo, pero no pueden proporcionar una solución o una posible causa. Ahora, después de semanas de enviar correos, el servicio de asistencia dice que no son compatibles con Android, pero hemos intentado sus sugerencias:

  • Utilice los url redirigidos y no redirigidos

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

https://fpdl.vimeocdn.com/vimeo-prod-skyfire-std-us/01/2013/7/185069251/610514667.mp4?token=586a9287_0xbb25f73405c612b30e0c64dc4c3a169e30137f84 [No redirigido]

  • Usa una vista de video en lugar de un reproductor multimedia.

  • Hemos probado una implementación nativa de Android y Xamarin para Android.

  • Intente descargar el archivo => esto funciona pero queremos transmitirlo porque algunos videos duran más de 30 minutos (> 100 mb). Descomente el código en el onCreate en el DownLoadActivity para probar la descarga.

En el navegador todo funciona bien.

He colocado un proyecto de prueba en We-Transfer donde puede ver el problema https://bazookas.wetransfer.com/downloads/40dadcc8a01f7ebf025345cdf88b731220170102160508/21970a


HI en mi aplicación también estoy usando Vimeo pero de otra manera. Y está funcionando bien sin problema en cualquier sistema operativo. (Para Android nativo)

webView.setWebViewClient(new WebViewClient() { public boolean shouldOverrideUrlLoading(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(); } @Override 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"); }

para

ancho de la ventana: -
int windowwidth = getWindowManager (). getDefaultDisplay (). getWidth ();
int windowheight = getWindowManager (). getDefaultDisplay (). getHeight ();


Parece que el problema con la url que usas. Usted usa url de vimeo api para el archivo HD. Y por alguna razón, el sistema Android no permite almacenar en caché más de una cantidad de KB.

Si cambia la url de HD a vimeoHLS: enlace para transmisión, todo funciona bien. Se solucionó el problema para mi Android 7, pero aún no he probado esto para otra versión.

No puedo encontrar una razón por la que esto no funcione en Android 6+, pero funciona bien para versiones inferiores.