Но следующим шагом будет трансляция живого видеопотока в веб-клиент. Я попытался отправить его через TCP в мое приложение ASP.NET MVC4. Мой контроллер страницы выглядит следующим образом:
Код: Выделить всё
public class VideosController : ApiController
{
///
/// Web API method to paste into videocontainer in "video" tag on web page
///
///
File name with location path
/// Videofile extension
/// Return stream content
public HttpResponseMessage Get(string filename, string ext)
{
var video = new VideoStream();
var response = Request.CreateResponse();
response.Content = new PushStreamContent(video.WriteToStream, new MediaTypeHeaderValue("video/" + ext));
return response;
}
}
Код: Выделить всё
public void WriteToStream(Stream outputStream, HttpContent content, TransportContext context)
{
try
{
var buffer = new byte[65536];
TcpClient serverSocket;
serverSocket = new TcpClient("localHost", 333);
NetworkStream netStream = serverSocket.GetStream();
StreamReader streamReader = new StreamReader(netStream);
try
{
var bytesRead = 0;
while (true)
{
bytesRead = netStream.Read(buffer, 0, buffer.Length);
outputStream.Write(buffer, 0, bytesRead);
}
}
catch (EndOfStreamException)
{
Console.WriteLine("End of file transaction");
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
catch (HttpException ex)
{
return;
}
finally
{
outputStream.Close();
}
}
Когда я меняю метод WriteToStream на чтение видео из локального файла (сохраненного ранее из той же сцены), а не из сети, видео работает хорошо.
Что я делаю не так? Или, может быть, есть другое решение для передачи живого видео с видеосервера в веб-клиент?
Подробнее здесь: https://stackoverflow.com/questions/200 ... et-webpage
Мобильная версия