У меня есть простой webapi
для возврата видео, как описано в этом ответе .
Код
[HttpGet]
[Route("api/v1/video-stream/template/{TemplateFileName}/")]
public HttpResponseMessage InitializeApplication([FromUri] string TemplateFileName)
{
string path = Path.Combine(root, System.Text.Encoding.UTF8.GetString(System.Convert.FromBase64String(TemplateFileName)));
byte[] _content = File.ReadAllBytes(path);
using (MemoryStream stream = new MemoryStream(_content))
{
if (Request.Headers.Range != null)
{
// Return part of the video
HttpResponseMessage partialResponse = Request.CreateResponse(HttpStatusCode.PartialContent);
partialResponse.Content = new ByteRangeStreamContent(stream, Request.Headers.Range, MediaTypeHeaderValue.Parse("video/mp4"));
return partialResponse;
}
else
{
// Return complete video
HttpResponseMessage fullResponse = Request.CreateResponse(HttpStatusCode.OK);
fullResponse.Content = new StreamContent(stream);
fullResponse.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("video/mp4");
return fullResponse;
}
}
}
Я пытаюсь воспроизвести видео, передаваемое этим API в моем WinForm application
, и я пытаюсь сделать что-то подобное:
private void btnPlay_Click(object sender, EventArgs e)
{
player.URL = $"http://mywebapi/api/v1/video-stream/template/{Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes("TEST.mp4"))}";
player.Ctlcontrols.play();
}
Мой webapi успешно вызван, но мой игрок получает ошибку:
-1072885782 (или, используя ToString("X")
, C00D0FEA)
Я уверен, что что-то упустил, так как я никогда не использовал оба этих метода, но есть идеи о том, как заставить это работать?
Спасибо