クライアントのダウンロード速度に応じて、ビデオを低品質または高品質で表示したいと思います。すべてのJavascriptまたはC#ソリューションが受け入れられます。
ありがとう。
クライアントのダウンロード速度に応じて、ビデオを低品質または高品質で表示したいと思います。すべてのJavascriptまたはC#ソリューションが受け入れられます。
ありがとう。
確実にする方法はありません。クライアントにデータを送信できる速さだけを測定できます。情報を取得する速度を示すクライアントからの入力がなければ、できることはあまりありません。
クライアントを、javascript を使用するページにリダイレクトして、ページ内の既知のサイズの要素をダウンロードできます。次に、ダウンロードの開始時と終了時に時間を取り、要素のダウンロードにかかった時間を送信するクライアントの JavaScript を介して構築された URL にページをリダイレクトします。
要素のサイズがわかれば、レートを見積もり、ダウンロード速度を推測できます。
これは、Gmail の仕組みと、ユーザーのインターネット速度を検出する方法に関する投稿です。いくつかのアイデアを得ることができます。
おそらく、javascript では、次のようなことができます。
var testImg = document.createElement('img');
testImg.src="src.jpg"; // image with known size
var imageSize = 10; // for 10 k image
testImg.onload = function(){
var downloadRateKPerSrc = imageSize/((new Date().getTime() - startTime)/1000);
};
testImg.style.display='none';
var startTime = new Date().getTime();
document.body.appendChild(testImg);
テストされていないコード - しかし、このアイデアはうまくいくでしょうか?
GeoIP Netspeed でアドレスを調べることができます: http://www.maxmind.com/app/geolocation
ほとんどの Web サイトでは、高品質または低品質のバージョンをユーザーに選択させるだけです。
これは悪い考えです。特に、ほとんどのユーザーは帯域幅を自分で制御できるためです (つまり、かなりの帯域幅を使用する P2P アプリを実行していますが、他に優先する必要がある場合はそれらをオフにします)。
アップロード pugin として Silverlight または Flash を使用できます。これにより、アップロードの対象、状態、およびアップロード開始時のアップロード速度をクライアントで実際に制御できます。