18

アプリで Vimeo のビデオを再生しようとしています。問題は、Android 6 デバイスでは、一定時間後にビデオの再生が停止することです。API が低いデバイスでは、すべて正常に動作します。

  • 時間は品質によって異なります。以下の提供された URL のビデオは、特定の分 (1 ~ 3) 再生されます。ビデオの品質がどの程度低下し、どれだけ長く再生し続けるか。
  • 1 ~ 3 分後、mediaplayer は 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 とリダイレクトされていない URL を使用する

http://player.vimeo.com/external/185069251.hd.mp4?s=fd7b4178a59166b3f636f2e48f1d49b99db66ed2&profile_id=174 [リダイレクト先 URL]

https://fpdl.vimeocdn.com/vimeo-prod-skyfire-std-us/01/2013/7/185069251/610514667.m​​p4?token=586a9287_0xbb25f73405c612b30e0c64dc4c3a169e30137f84 [リダイレクトされない URL]

  • メディアプレーヤーの代わりにビデオ ビューを使用する

  • ネイティブ Android と Xamarin Android 実装を試しました

  • ファイルをダウンロードしてみてください => これは機能しますが、一部のビデオは 30 分 (>100 mb) を超えているため、ストリーミングしたいと考えています。ダウンロードをテストするには、DownLoadActivity の onCreate のコードのコメントを外します。

ブラウザでは、すべて正常に動作します。

私はあなたが問題を見ることができるWe -Transferにテストプロジェクトを置きました

4

2 に答える 2

3

こんにちは、私のアプリでは Vimeo も使用していますが、別の方法で使用しています。また、どのOSでも問題なく動作します。(ネイティブ 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");
        }

為に

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

于 2017-01-09T10:42:03.090 に答える