0

作成しようとしている YouTube キャッシュに問題があります (インターネット接続が非常に遅い)。これは、ビデオ再生ページが要求されているかどうかを検出し、応答をディスクに保存することによって機能します。Lightspark と FireFox の html5 プレーヤーでは正常に動作しますが、Google Chrome で試してみると、RespCacheCallback で書き込みエラーが発生します。

質問に投稿するには長すぎるため、ここにソースがあります。

4

1 に答える 1

0

キャッシュを検索したときに、プログラムで作成された ID に範囲を追加するのを忘れていました。これは、プログラムがビデオ全体を送信しようとしたときに、小さな部分が要求されたため、プレーヤーが接続を閉じたことを意味します。このメソッドを MainClass に追加することで修正されました

static bool TryGetRange (string url, out string range)
{
    int index = url.IndexOf ("&range=");
    if (index == -1) {
        range = null;
        return false;
    }
    index += 7;
    int len = url.IndexOf ('&',index) - index;
    range = url.Substring (index,len);
    return true;
}

このメソッドは、rangeパラメーターが URL に存在するかどうかを確認し、その値を取得します。次に、このコードを前に追加しますif(File.Exists (requestData.Signature + "_done"))

string range;
if(TryGetRange (requestString, out range))
{       
    requestData.Signature += range;
}

これにより、範囲パラメータが検出された場合に署名に範囲が追加されます

于 2013-01-02T12:53:35.477 に答える