我在当前的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核心版中不可用。
答案 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,并且无法播放视频。