1. 程式人生 > 實用技巧 >視訊返回並可以直接播放

視訊返回並可以直接播放

/// <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); 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; } }