birden fazla video istekleri yapar. Ben dosyayı .NET Framework v2.0 çalıştıran IIS 7 üzerinde barındırılan bir ASP.NET .ashx dosyası aracılığıyla el ile iletiyorum.Mobil Safari Mobil safari HTML5 kullanan iPad için bir web uygulama tasarlama
temel kod kısmen şuna benzer:
// 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, startIndex, length);
}
else
context.Response.TransmitFile(filePath);
Şimdi ne olacak sonu beni karıştırması safari kullanmak gibi görünüyor istemek için protokoller olduğunu. İstemciler aracılığıyla istekleri proxy'den aprox 2MB dosyası için aşağıdakileri aldım.
NOT: Bir mp4 dosya isterken, doğrudan, protokol ve istek miktarı bunu okumak için izin verir 2 byte rica aynı
- İlk vardır IIS 7 aracılığıyla sunulan 'İçerik Aralığı' başlığı.
- Şimdi tüm içerik isteğinde
- (?) - Yine adımı 1. & 2. yapmaya devam
- (??)
- -
- Şimdi dosyanın sadece bazı kısımlarını istekleri (dosya büyükse ???)
son adımlar çok daha fazla olacaktır. Her isteğin dosyanın eşit olarak bölünmüş bir kısmını içerdiği en fazla 99 isteği test ettim. Bu mantıklı ve bence beklenecek olan şey. Anlayamadığım şey, ilk 2 bayt için 2 başlangıç isteğinin yanı sıra, dosyanın tamamını farklı bölümlerde istemeden önce tüm dosya için 2 istek oluşturmasıdır.
bu 2 arasında indirilen dosyaya neden sonuçlandırmak üzere - dosyanın uzunluğuna ve kullanıcı yeterince uzun saatler olmasına bağlı olarak, 3 kez.
kimse bu davranışın mantıklı ve belki birden fazla indirme önlemek için neler yapabileceğini açıklar. Teşekkürler. Sorunuzun benim Başına yorum
i aynı şey geldi:
İşte konuyla ilgili benim orijinal (cevapsız) sorudur. onun da ipod ve mp3 dosyaları ile uğraşıyorsanız. Ne yazık ki çözüm yok ... – worenga
Çok büyük (30meg) bir videoyla aynı şeyi fark ettim. Bazen istek, bir iPad'den geldiğinde tüm dosya için istekte bulunur! –
MPMoviePlayerController içindeki mp3 dosyaları ile aynı deneyimi yaşadım. İşte bunun hakkında cevapsız bir soru sordum. Sorumun, yapılan isteklerle ilgili biraz daha fazla bilgisi var. http://stackoverflow.com/questions/4855485/mpmovieplayercontroller-not-playing-full-length-mp3 – TomSwift