videoタグとXMLHttpRequestを組み合わせたBlobデータの送受信方法
HTML5のBlob.slice()メソッドとは
HTML5で導入された Blob.slice() メソッドは、元のBlobオブジェクトから指定したバイト範囲のデータだけを抜き出し、新しいBlobオブジェクトを生成するための便利な機能です。大きなファイルを分割して処理したい場合や、部分的なアップロードを行いたい場合に特に役立ちます。
このメソッドは、XMLHttpRequest と組み合わせることで、バイナリデータの送受信を実現できます。
slice()を使ったバイナリデータの送受信例
以下の例では、slice() を使用してテキストデータを送信し、POSTメソッドによって「file」をサーバーへ送っています。
var val = new XMLHttpRequest();
val.open("POST", url, true);
val.onload = function (event) {
// レスポンス受信後の処理
};
var blob = new Blob(['demo'], {type: 'text/plain'});
val.send(blob);このコードでは、まず XMLHttpRequest のインスタンスを作成し、open() でPOSTリクエストを初期化しています。その後、Blob コンストラクタでテキスト形式のBlobオブジェクトを生成し、send() メソッドでサーバーに送信します。
videoタグへの応用
動画データを扱う場合は、レスポンスタイプを「blob」に設定し、取得したBlobからオブジェクトURLを生成することで、video要素に直接動画を流し込むことができます。
req.onload = function () {
var blob_uri = URL.createObjectURL(this.response);
myElement.appendChild(document.createElement("source")).src = blob_uri;
};
req.responseType = "blob";このコードのポイントは以下の通りです。
- responseType = "blob": レスポンスをBlobオブジェクトとして受け取るよう指定します。
- URL.createObjectURL(): 受け取ったBlobから一時的なURLを生成し、メモリ上のデータをブラウザが参照できるようにします。
- source要素の追加: 動画を埋め込みたい親要素(myElement)に対して
<source>要素を動的に追加し、生成したURLをsrc属性に設定します。
この手法を使えば、サーバーから取得した動画データをページの再読み込みなしで動的に再生できるようになり、ストリーミング風のユーザー体験を実装する基盤にもなります。
-
PCで使える無料動画結合ソフトおすすめ15選【Windows 10対応】
プロ仕様に編集された動画が洗練されて見えるのは、欠陥やノイズがないからです。映像をつなぎ替えたり全体の品質を高めたりする作業は動画編集と呼ばれ、近年の動画編集ソフトはポストプロダクション作業を自動化できるため、誰でも手軽に編集を行えるようになりました。本記事では、複数の映像を1本にまとめるのに最適な動画編集ソフトを厳選してご紹介します。Windows 10 PCで使える無料の動画結合ソフトをお探しの方は、ぜひ最後までご覧ください。Windows 10 PC向け無料動画結合ソフト ベスト15動画結合ツールを使えば、次のようなことができます。動画の別々のセグメントをつなげる複数の動画を1本の作品に
-
Androidスマホで使えるおすすめ動画プレイヤーアプリ23選
Androidは、アプリ開発者にとって最も扱いやすいOSのひとつです。Google PlayストアはApp Storeほど審査が厳しくなく、何十万という多種多様なアプリが公開されており、ユーザーはスマホでやりたいことほぼすべてに対応するアプリを見つけることができます。長時間の移動中や暇な時間、ちょっとした息抜きが必要なとき、スマホは手軽なエンターテインメントの源になります。特に動画再生アプリがあれば、スマホはいつでもどこでも楽しめる「ポケットシアター」に早変わり。新しい映画やドラマを再生するだけで、退屈な時間を充実したひとときに変えられるのです。Androidスマホには標準の動画プレイヤーが搭