Witajcie, chcę przesłać strumieniowo wideo z mojego blobu Azure za pośrednictwem aplikacji internetowej ASP.NET MVC do użytkowników w przeglądarkach komputerowych i oczywiście przeglądarkach mobilnych.Strumieniowe przesyłanie wideo MVC do przeglądarek mobilnych
Do tej pory zbudowałem aplikację ASP.NET MVC, która obsługuje stronę internetową i usługę WebApi, która ma wartość PushStreamContent. Działa to świetnie w Chrome i Edge na pulpicie. Ale wen próbuję otworzyć go na urządzeniu mobilnym Chrome, Safari, Firefox po prostu nie gra.
mój kod do tej pory:
Widok projektu 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">
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;
}
Helper na WebAPI
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();
}
}
}
}
również sprawdzić ten przydatny link: http://stackoverflow.com/questions/39834714/video-not-playing-on-ios10-chrome? answerertab = najstarszy # tab-top –