HTML 5 Плеер не работает

218
22 апреля 2018, 20:47

Приветствую. Отправляю куски от видео, массивы байт плееру, но он стакается и не проигрывает хотя и определяет длину видео. Хочу встроить в страницу HTML5 плеер, который бы работал обязательно по WebSocket. Плеер MSE(Media Source Extensions)

Прошу помощи

Вот HTML страница:

<html>
<body>
<video id="video" controls></video>
<script>
  if (!window.MediaSource) {
    alert('MediaSource API is not available!');
  }
  var mediaSource = new MediaSource();
  var video = document.getElementById('video');
  video.src = window.URL.createObjectURL(mediaSource);
  mediaSource.addEventListener('sourceopen', function() 
  {
    console.log('source opened');
    var sourceBuffer = mediaSource.addSourceBuffer('video/webm; codecs="vorbis,vp8"');
    var connection = new WebSocket('ws://localhost:8090/Laputa');
    connection.binaryType = 'arraybuffer';
    connection.onopen = function() 
    {
      connection.send("start");
      console.log('WS open');
    };
    connection.onmessage = function(event) 
    {
      console.log('WS message');
      if (event.data instanceof ArrayBuffer) 
      {
        console.log('appending data',event.data);
        sourceBuffer.appendBuffer(event.data);
      //  if (video.paused) {
          connection.send("contin");
          video.onerror=function(event ){
            console.log(event.data)
       //   }
        }
       // video.play();
      }
    };
    connection.onclose = function() 
    {
      console.log('WS close');
    };
  });
</script>
</body>
</html>

А вот код сервера:

public class Laputa : WebSocketBehavior
{
    protected override void OnMessage(MessageEventArgs e)
    {
        FileStream fs = File.OpenRead(@"C:\Users\stgmt\Videos\123.webm");
        byte[] buffer = new byte[65000];
        fs.Read(buffer, 0, buffer.Length);
        Send(buffer);
        Console.WriteLine($"SendMEssageIndex:{e.Data}");
    }
}

Main:

public static void Main(string[] args)
{
    var wssv = new WebSocketServer("ws://localhost:8090");
    wssv.AddWebSocketService<Laputa>("/Laputa");
    wssv.Start();
    Console.ReadKey(true);
    wssv.Stop();
}
READ ALSO
Вставить Автотекст в закладку word

Вставить Автотекст в закладку word

Подскажите пожалуйста, как (c# winforms vs2010) выполнить вставку автотекста с именем "tbl" в место расположения закладки с именем "new"Автотекст присутствует...

160
Как пользоватся файлами txt в Unity?

Как пользоватся файлами txt в Unity?

Вот моя ситуация: у меня есть игра, игровое поле которой представляет прямоугольник n*m, и мне очень удобно информацию о каждой клетке поля...

407
Быстрое сложение изображений в C#

Быстрое сложение изображений в C#

Основная задача: мне необходимо в реальном времени (или около того) сложение двух Grayscale FullHD 8bit изображений (которые будут использованы как...

198