問題タブ [whatwg-streams-api]

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 に答える
3305 参照

javascript - Chrome: fetch/XHR 経由でダウンロードされているビデオを再生するには

私が達成しようとしているのは、Chromeにビデオファイルをデータとして(Fetch API、XHRなどを介して)ロード<video>させ、同じURLに対して2つの別々のリクエストを発行せずに、ダウンロード中に使用して再生することです。ファイルが完全にダウンロードされます。

ReadableStreamFetch API ( ) から取得するのは簡単ですが、それを要素response.bodyにフィードする方法が見つかりません。これには、オブジェクトを使用して作成できる URL がvideo必要であることがわかりました。ただし、必要なように聞こえるメソッドは Chrome に実装されていないため、ストリームをオブジェクトに直接接続することはできません。blobMediaSourceSourceBuffer#appendStreamMediaSource

おそらく、ストリームをチャンクで読み取り、Uint8Arrayそれらから を作成し、 を使用できますSourceBuffer#appendBufferが、これは、チャンク サイズが非常に小さい場合を除き、再生がすぐに開始されないことを意味します。また、これらすべての API がすぐに実行できるはずのことを、手動で実行しているようにも感じます。他に解決策がなく、この方法を使用する場合、どのような注意が必要ですか?

のブロブ URL を作成する他の方法はおそらくありますReadableStreamか? または、リクエストを作成fetchして<video>共有する方法はありますか? 非常に多くの新しい API があるため、簡単に何かを見落としてしまう可能性があります。

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

stream - リクエストボディとして ReadableStream を使用してフェッチする

ReadableStreamでfetchを使用しようとしています。この例では、ReadableStream は単純に "Some data..." を無期限に繰り返す必要があります。

これはうまくいきません。が 1 回実行される間pull、要求本文でデータは送信されません。

ReadableStream (または動的データを書き込むことができる任意の種類のストリーム) をフェッチで使用できるようにするにはどうすればよいですか?

あるいは、これがまだ可能でない場合は、これを示していただけますか? ありがとうございました。

注: これは、 HTTP 経由でブラウザーからサーバーにデータをストリーミングする方法からの、より具体的なスピンオフの質問です。