public static async Task<Stream> GetStreamRangeAsync(Uri uri, Range range) { using (var httpClient = new HttpClient()) { if (range != null) { if (range.From.HasValue) httpClient.AddRange((long)range.From.Value, (long)range.To.Value); else if (range.To.HasValue) httpClient.AddRange((long)range.To.Value); } return (await httpClient.GetResponse(uri)).Stream; } }
public static async Task<Stream> GetStreamRangeAsync(Uri uri, Range range) { var request = (HttpWebRequest)WebRequestCreator.ClientHttp.Create(uri); request.Method = "GET"; if (range != null) { if (range.From.HasValue) { request.AddRange((long)range.From.Value, (long)range.To.Value); } else if (range.To.HasValue) { request.AddRange((long)range.To.Value); } } using (var response = await request.GetResponseAsync()) { return GetStream(response); } }
static Range LoadRange(XElement element) { var result = new Range(); result.StartTime = element.Attribute("starttime").GetNullableDuration(); result.Duration = element.Attribute("duration").GetNullableDuration(); return result; }