私はexamsを使ってビデオを再生するためにexomediaライブラリを使用しています。ビデオがストリーミングされると、ビデオをキャッシュします。 AndroidVideoCacheライブラリはこの仕事をうまく行いますが、HLSをサポートしていません。一度ストリーミングされたHLSビデオURLをキャッシュする方法
2
A
答えて
0
これは、Exomediaライブラリで使用されているokhttpクライアントを設定することで実行できます。
まず、setVideoUri(uri、renderbuilder)メソッドを使用してemvideoviewにカスタムのrenderbuilderを提供する必要があります。
カスタムhlsレンダービルダーを提供するには、HlsRenderBuilderクラスをオーバーライドしてcreateDataSourceメソッドをオーバーライドする必要があります。ここでは、OkHttpDatasource (link)オブジェクトを返す必要があります。
OktthpDatasourceクラスのコンストラクタで設定済みのOkhttpクライアントを提供する必要があります。
okhttpクライアントを設定するためです。 レスポンスインターセプタをこのクライアントに追加し、キャッシュを有効にするために元の応答ヘッダーを追加する必要があります。設定例が可能です。
CacheControl cacheControl = new CacheControl.Builder()
.maxStale(22, TimeUnit.DAYS)
.maxAge(22, TimeUnit.DAYS)
.build();
Response originalResponse = chain.proceed(chain.request());
if (originalResponse.code() == 206 || originalResponse.code() == 200) {
if (originalResponse.code() == 200) {
Headers newHeader = originalResponse.headers().newBuilder().removeAll("Expires").removeAll("Pragma").build();
originalResponse = originalResponse.newBuilder().code(200).body(originalResponse.body()).headers(newHeader).build();
} else {
originalResponse = originalResponse.newBuilder().code(200).body(originalResponse.body()).build();
}
}
if (isNetworkAvailable(mContext)) {
int maxAge = 60; // read from cache for 1 minute
return originalResponse.newBuilder()
.header("Cache-Control", cacheControl.toString())
.build();
} else {
int maxStale = 60 * 60 * 24 * 28; // tolerate 4-weeks stale
return originalResponse.newBuilder()
.header("Cache-Control", cacheControl.toString())
.build();
}
関連する問題
- 1. ExoplayerのHLSストリーミングURLでクローズドキャプションをオン/オフにする方法は?
- 2. サムスンインターネットでHLSストリーミングとHLSストリーミングを使用したHTML5オーディオ
- 3. 一時的なビデオのストリーミングURL
- 4. Android ExoPlayer - ビデオ(非DASH/HLS)とストリーミングを同時にダウンロードする
- 5. ビデオをブラウザにキャッシュし、ビデオを再生するたびにキャッシュされたバージョンを使用する方法
- 6. AndroidでHLSストリーミング
- 7. ストリーミングされたデータを再度ブロードキャストする方法は?
- 8. 360度ビデオのVRアンドロイドアプリのMediaPlayerでYoutubeビデオをストリーミングする方法は?
- 9. PhoneGapでビデオをストリーミングする方法
- 10. フロープレーヤーを搭載したモバイルデバイスでHLSストリーミング
- 11. スパータン3e fpgaで小さなビデオをストリーミングする方法は?
- 12. preload playerItemのリストのHLSストリーミング
- 13. Exoplayer適応型hlsストリーミング
- 14. AVPlayerでAES-128暗号化HLSビデオを再生する方法
- 15. WebViewでビデオをキャッシュする方法は?
- 16. AVPlayerビデオをキャッシュする方法は?
- 17. ビデオが生成されている間にオンラインでビデオをストリーミングし、失敗したCGIの方法。
- 18. ExoPlayer - HLSビデオがライブかどうかを知る方法?
- 19. HLSストリーミング:PHPからチャンクを得ることが可能ですURL:
- 20. html5プレーヤーでビデオをストリーミングするためにgoogle drive apiでビデオURLを回復してください。
- 21. Swift 3:HLSストリーミング用のJWPlayer用に複数のCookieを設定する方法
- 22. HLSストリーミングFFMPEGのレイテンシを短縮
- 23. MJPEGでビデオをストリーミングする方法Macでフォーマットする
- 24. ビデオUDPプロトコルをストリーミングする
- 25. C#でビデオをストリーミングする
- 26. AngularJS:キャッシュされたURLまたはキャッシュされていないURLをロードする
- 27. 一度セグメンテーションされたUISearchBarを解除する方法
- 28. SWFを使用してビデオをストリーミングする方法は?
- 29. HLSストリーミング、最初のチャンク用のタイマー
- 30. インターネット経由でビデオをストリーミングする最も安全な方法