5

こんにちは、ASP.NET MVC Webアプリケーションを使用して私のAzure BLOBからビデオをデスクトップブラウザとモバイルブラウザのユーザーにストリーミングします。モバイルWebブラウザへのMVCビデオストリーミング

これまでにビルドしたものは、WebサイトとPushStreamContentとなるWebApiサービスを提供するASP.NET MVCアプリケーションです。これはデスクトップ上のChromeとEdgeですごくうまくいきます。しかし、私はモバイルデバイスChrome、Safari、Firefoxでそれを開こうとすると、それはちょうど再生されません。これまで

マイコード:

MVCプロジェクト

<video id="vPlayer" class="video-js" autoplay controls playsinline preload="auto" data-setup='{"fluid": true}'poster="@ImgManager.GetVideoImgUrl(Model.ThumbnailUrl)"> 
<source src="//xyz.nl/api/Videos/Get?filename=340a85a3-ccea-4a2a-bab6-74def07e416c.webm&type=video%2Fwebm" type="video/webm"> 
<source src="//xyz.nl/api/Videos/Get?filename=340a85a3-ccea-4a2a-bab6-74def07e416c.mp4&type=video%2Fmp4" type="video/mp4"> 

public class VideoStream 
    { 
     private readonly string _filename; 

     public VideoStream(string fileName) 
     { 
      _filename = fileName; 
     } 



     public async Task WriteToStream(Stream outputStream, HttpContent content, TransportContext context) 
     { 
      try 
      { 
       var storage = new AzureMainStorage("avideo"); 
       byte[] file = await storage.GetFileAsync(_filename); 

       var buffer = new byte[65536]; 

       using (var video = new MemoryStream(file)) 
       { 
        var length = (int)video.Length; 
        var bytesRead = 1; 

        while (length > 0 && bytesRead > 0) 
        { 
         bytesRead = video.Read(buffer, 0, Math.Min(length, buffer.Length)); 
         await outputStream.WriteAsync(buffer, 0, bytesRead); 

         length -= bytesRead; 
        } 
       } 
      } 
      catch (HttpException ex) 
      { 
       Utilities.LogErrorToDb(ex); 
       return; 
      } 
      finally 
      { 
       outputStream.Close(); 
      } 

     } 

    } 
} 
WEBAPI

上WEBAPI

public HttpResponseMessage Get(string filename, string type) 
     { 
      var video = new VideoStream(filename); 
      var response = Request.CreateResponse(); 

      response.Content = new PushStreamContent(video.WriteToStream, new MediaTypeHeaderValue(type)); 

      return response; 
     } 

ヘルパーの眺め

答えて

1

私はマイクロソフトの魔法使いから私の記事を完全に私の問題を解決した別のものを試してみました。 http://stackoverflow.com/questions/39834714/video-not-playing-on-ios10-chrome:

public HttpResponseMessage Get(string filename, string type) 
{ 
    MemoryStream stream = new MemoryStream(new AzureMainStorage("avideo").GetFile(filename)); 

    HttpResponseMessage partialResponse = Request.CreateResponse(HttpStatusCode.PartialContent); 
    partialResponse.Content = new ByteRangeStreamContent(stream, Request.Headers.Range, "video/mp4"); 
    return partialResponse; 
} 
+0

はまた、この便利なリンクをチェックしてください。ここで

Link to articleは私のために働いていたコードはありますか? answertab =最古の#tab-top –

関連する問題