将视频从asp.net核心网络API流式传输到Android / iOS

时间:2017-05-28 19:13:02

标签: android ios asp.net-web-api asp.net-core streaming

我在当前的Web API项目中遇到了问题。我有一个数据库,其中一个表有一个varbinary类型的列。我想构建一个动作方法,我从该列中检索数据并准备它,这样当我调用此动作方法时,我可以查看来自Android和iOS设备的实际视频。

我设法让它在Android上工作但不是iOS,我对Android的尝试如下:

[HttpGet]
public IActionResult Get() {
   var bytes = //getting the data form the database;
   var stream = new MemoryStream(bytes);
   return File(stream, "video/mp4");
}

我找到了他们使用PushStreamContent课程的答案和博文,我认为这个课程在asp.net核心版中不可用。

1 个答案:

答案 0 :(得分:0)

该死,我正在尝试做同样的事情,但是我有很多麻烦。 首先,您需要支持部分内容。 asp.net核心MVC更新到版本2.1.x(也许也是2.0.x)具有一个新的File方法重载,该方法重载返回了FileStreamResult

FileStreamResult File(Stream fileStream, String contentType, String fileDownloadName, Boolean enableRangeProcessing);

这应该是您的起点。 此后,我仍然无法在我的iOS上播放视频,我注意到在响应标头content-disposition: attachment; ...中,我正在研究是否删除附件令牌或将其与内联一起可以达到目的

就是这样!您只需要那个。

在我的情况下,由于某种原因,HyperV外部虚拟交换机将连接速度限制为20KiB / s,并且无法播放视频。