我的youtube缓存存在问题我试图制作(我的互联网连接非常慢)。它的工作原理是检测是否请求了视频播放页面并将响应保存到磁盘。它适用于Lightspark和FireFox上的html5播放器,但是当我在Google Chrome上试用它时,我在RespCacheCallback中获得了写入失败。
我有源here因为它太长而无法发布问题。
答案 0 :(得分: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;
}
此方法检查url中是否存在range
参数,然后获取其值。
然后在if(File.Exists (requestData.Signature + "_done"))
string range;
if(TryGetRange (requestString, out range))
{
requestData.Signature += range;
}
如果检测到范围参数,则会将范围添加到签名