大佬教程收集整理的这篇文章主要介绍了ipad – Mobile Safari可以生成多个视频请求,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
// If we receive range header only transmit partial file if (context.request.Headers["Range"] != null) { var fi = new FileInfo(filePath); long fileSize = fi.Length; // Read start/end index String headerRange = context.request.Headers["Range"].replace("bytes=",""); String[] range = headerRange.Split('-'); int starTindex = Convert.ToInt32(range[0]); int endIndex = Convert.ToInt32(range[1]); // Add header Content-Range,Last-Modified context.Response.StatusCode = (int)httpStatusCode.PartialContent; context.response.addheader(httpWorkerrequest.GetKNownResponseHeaderName(httpWorkerrequest.HeaderContentRangE),String.Format("bytes {0}-{1}/{2}",starTindex,endIndex,fileSizE)); context.response.addheader(httpWorkerrequest.GetKNownResponseHeaderName(httpWorkerrequest.HeaderLastModified),String.Format("{0:r}",fi.CreationTimE)); long length = (endIndex - starTindeX) + 1; context.Response.TransmitFile(filePath,length); } else context.Response.TransmitFile(filePath);
现在让我感到困惑的是协议,请求这个safari似乎使用。从代理请求通过fiddler我得到以下的aprox 2MB文件。
注意:请求mp4文件时,直接通过IIS 7提供,协议和请求量是相同的
>首先它请求2个字节,它允许它读取“Content-Range”头。
>现在请求整个内容(?)
> –
>继续做第1步。再次(??)
> –
>它现在只要求文件的一部分(???)
如果文件较大,最后的步骤将会更多。我已经测试了最多99个请求,其中每个请求都包含文件的一部分等分。这是有道理的,是我认为的。我无法理解的是,为什么它会在最后2个字节的初始请求以及整个文件的2个请求之前,最终在不同的部分请求文件。
当我得出结论,这个结果是在2 – 3次之间下载文件,这取决于文件的长度以及用户是否观看足够长的时间。
任何人都可以理解这种行为,也许可以解释我可以做什么来防止多次下载。谢谢。
@H_673_2@
这是关于这个问题的原始(未回答)问题:
MPMoviePlayerController not playing full length MP3
@H_673_2@ @H_673_2@以上是大佬教程为你收集整理的ipad – Mobile Safari可以生成多个视频请求全部内容,希望文章能够帮你解决ipad – Mobile Safari可以生成多个视频请求所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。