Задать вопрос
@BristlyStarling

Chrome. Asp.net / PushStreamContent. Почему стриминг видео прекращаеться?

Api:
public HttpResponseMessage Get(string id)
        {
            var video = new VideoStream(id);
            var response = Request.CreateResponse();
            response.Content = new PushStreamContent((Action<Stream, HttpContent, TransportContext>)video.WriteToStream, new MediaTypeHeaderValue("video/webm"));
            response.Content.LoadIntoBufferAsync();
            return response;
        }

Video Stream:
public async void WriteToStream(Stream outputStream, HttpContent content, TransportContext context)
        {
            try
            {
                byte[] buffer;

                var f = File.Open(_filename, FileMode.Open, FileAccess.Read);
                if (f != null)
                    buffer = new byte[f.Length];
                else
                    buffer = new byte[Int32.MaxValue];

                f.Close();

                using (var video = File.Open(_filename, FileMode.Open, FileAccess.Read))
                {
                        var length = (int)video.Length;
                        var bytesRead = 1;
                       
                        while (length > 0 && bytesRead > 0)
                        {
                            bytesRead = video.Read(buffer, 0, Math.Min(length, buffer.Length));
                            await outputStream.WriteAsync(buffer, 0, bytesRead);
                            length -= bytesRead;
                        }
                        video.Close();
                        video.Dispose();
                }
            }
            catch
            {
                throw;             
            }
            finally
            {
               outputStream.Close();
            }
        }

Если видео больше 2 метров, хром отправляет повторный запрос по окончанию ролика. Была проблема The remote host closed the connection. The error code is 0x80070040 Решилась увеличением executionTimeout.
Но вот почему повторная передача потока не происходит?
  • Вопрос задан
  • 611 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Stepik
    WEB программирование на ASP.NET Core
    2 недели
    Далее
  • Яндекс Практикум
    Продвинутая разработка на C# и .NET
    5 месяцев
    Далее
  • Stepik
    WEB программирование на ASP.NET Core. ВСЕ САМ
    2 месяца
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы