問題タブ [http-range]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
4658 参照

javascript - 範囲の終了を要求していない HTML5 ビデオ要素

Rangeリクエストを介してサーバーからファイル(mp4、mp3は関係ありません)をロードする<video>and要素があります。<audio>

ただし、要素はサーバーから最後の範囲のみを要求しているようで、それ以降はバイト 0 から最後まで直接ストリーミングしようとするため、プレーヤーが「ダウンロード ループ」に陥り、ブラウザーがすべてを一時停止します。ダウンロードが完了するまで他の操作を行います。

範囲リクエスト 1

範囲リクエスト 2

この問題の解決策を知っている人はいますか? たとえば、ストリーム リクエストの実際の末尾をcontent lengthorにする必要がありaccept-rangesますか?

Chrome からの完全なリクエスト リストを次に示します。下部にはview?watch=v__AAAAAA673pxX、基本的にelement.

全範囲のリクエスト履歴

簡単に言うと、リクエストを使用すると、html5 要素がダウンロード ループに陥り、http-range他のすべてのリクエストが「保留中」のままになります。

アップデート

問題はサーバー側で解決されました。

元のストリーム関数は文字通りすべてのバイトを出力しますが、実際のバッファーのサイズのみを出力するようにコードを変更しました。これelementsにより、残りのデータに対して新しい要求が行われます。

ここでの重要な注意点は、ファイルのサイズ、各リクエストの開始位置と終了位置に一致するcontent-lengthaccept-rangesを返すことです。content-rangesHTTP RANGE

今後の参考のために:

新しいストリーム機能:

0 投票する
0 に答える
267 参照

java - Spring での HTTP Range ヘッダーの解析と使用

私は、Rangeヘッダーを受け入れる必要があるSpringコントローラーを作成しており、そこにある値を使用してサードパーティのライブラリを使用してデータを要求し、結果を返します。

SpringHttpRangeクラスは有望に見えます。具体的には、parseRanges関数は次のように述べています。

指定されたカンマ区切りの文字列をHttpRangeオブジェクトのリストに解析します。

このメソッドは、[sic] Range ヘッダーを解析するために使用できます。

ただし、このクラスは、「表現の全長」を知らずに解析された値を抽出するためのインターフェイスを提供しません。

別の API に転送するリクエストを処理しているため、全体の長さはわかりません。

Range ヘッダーを検査し、長さを知らなくても値を抽出する標準的な Spring の方法はありますか? 可能であれば、カスタム パーサーを作成することは避けたいと考えています。