2016-03-17 87 views
2

您好,我有問題與html5播放器和尋求。.NET Core | MVC將音頻文件傳遞給html5播放器。啓用尋求

這是我的操作方法:

public IActionResult GetAudio(string url) 
    { 
     var file = System.IO.File.ReadAllBytes(url); 
     long fSize = file.Length; 
     long startbyte = 0; 
     long endbyte = fSize - 1; 
     int statusCode = 200; 
     var rangeRequest = Request.Headers["Range"].ToString(); 

     if (rangeRequest != "") 
     { 
      string[] range = Request.Headers["Range"].ToString().Split(new char[] { '=', '-' }); 
      startbyte = Convert.ToInt64(range[1]); 
      if (range.Length > 2 && range[2] != "") endbyte = Convert.ToInt64(range[2]); 
      if (startbyte != 0 || endbyte != fSize - 1 || range.Length > 2 && range[2] == "") 
      { statusCode = 206; } 
     } 

     long desSize = endbyte - startbyte + 1; 
     Response.StatusCode = statusCode; 
     Response.ContentType = "audio/wav"; 
     Response.Headers.Add("Content-Accept", Response.ContentType); 
     Response.Headers.Add("Content-Length", desSize.ToString()); 
     Response.Headers.Add("Content-Range", string.Format("bytes {0}-{1}/{2}", startbyte, endbyte, fSize)); 

     var stream = new MemoryStream(file, (int)startbyte, (int)desSize); 

     return File(stream, Response.ContentType); 
    } 

音頻播放機工作正常,但我不能求拋文件。 Progres酒吧也正常工作(移動)。 當我嘗試尋求音頻停止一段時間,並繼續玩同一時刻。

也許我必須添加更多的標題吧?

回答

2

好吧,這:

Response.Headers.Add("Accept-Ranges", "bytes"); 
Response.Headers.Remove("Cache-Control"); 

解決我的問題。