Приветствую. Отправляю куски от видео, массивы байт плееру, но он стакается и не проигрывает хотя и определяет длину видео. Хочу встроить в страницу 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();
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей