视频返回并可以直接播放

/// <summary>
        /// 
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        public HttpResponseMessage Getvoid()
        {
            HttpResponseMessage resp = new HttpResponseMessage();
            
            dynamic ObjJson = new ExpandoObject();
            try
            {
                string FAwemeId = HttpContext.Current.Request["FAwemeId"];
                if (string.IsNullOrEmpty(FAwemeId))
                {
                    ObjJson.state = true;
                    ObjJson.msg = "FAwemeId不可为空";
                    ObjJson.code = 500;
                    resp.Content = new StringContent(JsonConvert.SerializeObject(ObjJson), System.Text.Encoding.UTF8, "application/json");
                    return resp;
                }
                else
                {
                    //模拟请求
                    //这是现在打开的数据
                    //string url = "";
                    //换取内容
                    string dizhi = "";
                    string url = ;
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                    Stream myResponseStream = response.GetResponseStream();
                    StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
                    //获取到JSON
                    string Responsestring = myStreamReader.ReadToEnd();
                    myStreamReader.Close();
                    myResponseStream.Close();



                    JObject ResponsetData = (JObject)JsonConvert.DeserializeObject(Responsestring);
                    //这里注意是否全部为单值  需要对 2个0 做长度判断
                    string UrlPlay = ResponsetData["item_list"][0]["video"]["play_addr"]["url_list"][0].ToString();

                    //模拟请求视频
                    HttpWebRequest requestUrl = (HttpWebRequest)WebRequest.Create(UrlPlay);
              //添加头部文件

              requestUrl.Method = "GET";
              requestUrl.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
              requestUrl.Headers.Add("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3");
              requestUrl.UserAgent = "Mozilla/5.0 (Windows NT 5.2; rv:12.0) Gecko/20100101 Firefox/12.0";


                    HttpWebResponse responseUrl = (HttpWebResponse)requestUrl.GetResponse();




                    //Stream myResponseStreamUrl = responseUrl.GetResponseStream();
                    ////StreamReader myStreamReaderUrl = new StreamReader(myResponseStreamUrl, Encoding.GetEncoding("utf-8"));
                    //////获取到JSON
                    ////string ResponsestringUrl = myStreamReaderUrl.ReadToEnd();
                    ////myStreamReaderUrl.Close();
                    //myResponseStreamUrl.Close();


                    string urlRe = responseUrl.ResponseUri.ToString();

                    //模拟请求视频
                    HttpWebRequest requesturlRe = (HttpWebRequest)WebRequest.Create(urlRe);
                    HttpWebResponse responseurlRe = (HttpWebResponse)requesturlRe.GetResponse();
                    Stream myResponseStreamUrl = responseurlRe.GetResponseStream();

                    resp.Content = new StreamContent(myResponseStreamUrl);
                    ////resp.Content = new System.Net.Http.PushStreamContent(send, new System.Net.Http.Headers.MediaTypeHeaderValue("video/mp4"));



                    //var video = new VideoStream(UrlPlay);
                    //Action<Stream, HttpContent, TransportContext> send = video.WriteToStream;
                    //var response1 = Request.CreateResponse();
                    //response1.Content = new System.Net.Http.PushStreamContent(send, new System.Net.Http.Headers.MediaTypeHeaderValue("video/mp4"));
                    ////调用异步数据推送接口  
                    //return response1;
                }
                return resp;
            }
            catch (Exception)
            {
                ObjJson.state = true;
                ObjJson.msg = "数据异常";
                ObjJson.code = 500;
                resp.Content = new StringContent(JsonConvert.SerializeObject(ObjJson), System.Text.Encoding.UTF8, "application/json");
                return resp;
            }
          


        }

 

posted on 2020-11-27 11:04  透明的鱼!  阅读(347)  评论(0)    收藏  举报

导航