首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Blazor组件Web服务器c#中流式传输来自AzureBlob的视频

问在Blazor组件Web服务器c#中流式传输来自AzureBlob的视频
EN

Stack Overflow用户
提问于 2021-04-25 03:59:52
回答 1查看 179关注 0票数 1

我正在开发一个功能,我想从蓝色斑点视频.video文件已经上传到azureBlob,我可以使用斑点URI,但我的斑点是压缩的,所以我不能直接从斑点URI流视频。出于这个原因,我从azure存储中获取了blob,将其解压缩,并获得了视频的实际内存流。现在,我想播放该流中的视频。我研究了一下,发现从JS可以实现它。但我不想使用js代码段来运行它。是否有任何balzor web组件,我可以实现这一点。我也尝试过使用Nuget的blazored.video库,但仍然没有找到太多有用的东西。

代码语言:javascript
复制
@using Blazored.Video
@using Blazored.Video.Support


@if (File != null)
{
    <BlazoredVideo class="w-100"
                   style="max-width:800px;"
                   controls="controls">
        <source src="@File.FileUri" type="video/mp4" />
    </BlazoredVideo>
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-26 05:05:34

我已经找到了一种方法来实现这一点,它只需要我创建一个web API来返回我的视频的内容流。

我遵循这个例子来处理我的Web API中的流

Asynchronously Streaming Video with .Net Core API from Azure Blob Storage

我的作品

Page.razor

代码语言:javascript
复制
<BlazoredVideo class="w-100"
               style="max-width:800px;"
               controls="controls">
    <source src="api/Blob/PlayVideo" type="video/mp4" />
</BlazoredVideo>

API终结点

代码语言:javascript
复制
 [HttpGet("api/Blob/PlayVideo")]
        [AllowAnonymous]
        public async Task<IActionResult> AnonymousPlayVideoAsync()
        {               
                var cloudBlob = await _azureBlobStorageService.RetrieveBlobiAsync("Test.mp4");
          
             var stream = new MemoryStream();
            await cloudBlob.DownloadToStreamAsync(stream);

            //.. Decompression of Stream comes here

            var result= new FileContentResult(stream.ToArray(), "video/mp4");
            result.EnableRangeProcessing = true;           
            return result;
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67246939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档