关于视频播放的断点续传实现(.NET)
来源:互联网 发布:黎明杀机刷血点软件 编辑:程序博客网 时间:2024/05/16 14:04
在实现视频播放功能时,如果不是采用了CDN服务器,而是将视频播放文件直接放在了站点下,这时考虑采用断点续传,有利于优化播放速度。而且,大多数播放器支持缓冲播放。
闲话不多说,直接上代码:
using System;using System.IO;using System.Web;using System.Web.Mvc;using System.Web.Routing;namespace Video3dApp.Controllers{public class Video3dController : Controller{public ActionResult BrandUSA() {return View();}public ActionResult Detail() {return View();}[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post | HttpVerbs.Options)]public void ReadVideo() {var reqRange = Request.Headers["Range"];string[] reqBlockRange = null;if ( !string.IsNullOrEmpty(reqRange) ) {reqBlockRange = reqRange.Replace("bytes=", "").Split('-');Response.StatusCode = 206;Response.AddHeader("status", "206");}Response.AddHeader("accept-ranges", "bytes");Response.AddHeader("access-control-allow-methods", "HEAD, GET, OPTIONS");Response.AddHeader("access-control-allow-origin", "*");Response.AddHeader("cache-control", "public, max-age=30726563");Response.AddHeader("content-disposition", $"attachment; filename=test.mp4");Response.ContentType = "video/mp4";string fileName = Server.MapPath("/UploadFiles/test.mp4");using ( var stream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite) )using (var reader=new BinaryReader(stream)) {long fileSize = stream.Length;long startPosition = 0;long partialSize = fileSize;if ( reqBlockRange != null ) {startPosition = Convert.ToInt32(reqBlockRange[0]);partialSize = fileSize - startPosition;}//Read partial content into the buffer with a specified sizebyte[] buffer = new byte[(int)partialSize];// go to offset address reader.BaseStream.Seek(startPosition, SeekOrigin.Begin);// fill buffer from starting at address to address + BlockSisereader.Read(buffer, 0, (int)partialSize);Response.AddHeader("content-range", $"bytes {startPosition}-{startPosition + partialSize - 1}/{fileSize}");Response.AddHeader("Content-Length", $"{partialSize}");Response.BinaryWrite(buffer);}}}}
阅读全文
0 0
- 关于视频播放的断点续传实现(.NET)
- 使用.NET实现视频播放
- 使用NET实现视频播放
- 使用.NET实现视频播放
- asp.net实现视频播放
- asp.net实现播放视频
- 关于asp.net 做视频播放网站的积累
- 多线程下载+断点续传+播放视频
- 关于视频播放的学习
- 使用c#.NET实现视频播放
- ASP.NET实现断点续传的原理
- 简单的实现播放视频
- retrofit+Rxjava+Greendao+断点续传+Ijkplayer视频播放
- 最新GreenDao多线程下载,断点续传,播放视频
- 使用.NET实现断点续传
- 使用.NET实现断点续传
- 使用.NET实现断点续传
- 使用.NET实现断点续传
- ASP.NET – Button 控件
- 马士兵 Servlet & JSP(3.Servlet和JSP的通信)
- 广度优先搜索--搜索路径问题
- Hibernate用columnDefinition注解给实体属性设置默认值
- 深圳蓝韵医学影像C++开发面试总结
- 关于视频播放的断点续传实现(.NET)
- 百练noi18:肿瘤面积
- KAFKA知识(zk中架构图)
- 拼多多算法工程师笔试题之分配巧克力
- (本人stm32f03)配置系统时钟时,需要注意flash等待周期数要和系统时钟频率对应,不然程序跑飞
- Fragment生命周期探究
- KM(带权最大二分匹配) 模板
- Eclipse+Maven创建webapp项目
- 在Android framework层启动服务不被杀掉