WindowsForm WindowsMediaPlayer играть из потока вебапи - PullRequest
0 голосов
/ 15 марта 2019

У меня есть простой 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)

Я уверен, что что-то упустил, так как я никогда не использовал оба этих метода, но есть идеи о том, как заставить это работать?

Спасибо

...