Vimeo视频停止在Android 6设备上播放

Rob*_*eel 16 android vimeo vimeo-android

我正试图在我的应用程序中播放Vimeo的视频.问题是在Android 6设备上,视频会在一段时间后停止播放.在具有较低API的设备上,一切都很好.

  • 时间取决于质量.对于下面提供的网址的视频播放一定的分钟(1到3).视频质量越低,播放时间越长.
  • 1到3分钟后,媒体播放器抛出ProtocolException.该应用程序不会崩溃,但视频会在播放缓冲的视频片段时冻结.[MediaHTTPConnection] readAt 25182208 / 32768 => java.net.ProtocolException: unexpected end of stream and shows this in de log
  • 在异常之后视频播放30秒(缓冲),然后应用程序输出此信息 [MediaPlayer] error (1, -1004)

我们现在通过Vimeo支持向他们发送电子邮件数周,但他们无法提供解决方案或可能的原因.现在经过几周的邮寄后,支持部门表示他们不支持Android,但我们已经尝试了他们的建议:

  • 使用重定向和未重定向的URL

http://player.vimeo.com/external/185069251.hd.mp4?s=fd7b4178a59166b3f636f2e48f1d49b99db66ed2&profile_id=174 [重定向网址]

https://fpdl.vimeocdn.com/vimeo-prod-skyfire-std-us/01/2013/7/185069251/610514667.m​​p4?token=586a9287_0xbb25f73405c612b30e0c64dc4c3a169e30137f84 [未重定向的URL]

  • 使用视频视图而不是媒体播放器

  • 我们尝试过原生Android和Xamarin Android实现

  • 尝试下载文件=>这是有效的,但我们想要流,因为一些视频超过30分钟(> 100mb).取消注释DownLoadActivity中onCreate中的代码以测试下载.

在浏览器中一切正常.

我在We-Transfer上放置了一个测试项目,你可以看到问题https://bazookas.wetransfer.com/downloads/40dadcc8a01f7ebf025345cdf88b731220170102160508/21970a

小智 3

嗨,在我的应用程序中,我也在使用 Vimeo,但以另一种方式。而且它在任何操作系统中都可以正常工作,没有任何问题。(适用于原生 Android)

 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");
        }
Run Code Online (Sandbox Code Playgroud)

为了

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