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 回答