• c# HTML5 Blob对象实现媒体播放功能


    后台代码:

    public ActionResult Video()
            {
                string filePath = @"D:download	est.mp4";
                System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath);
                if (fileInfo.Exists == true)
                {
                    FileStream fs = new FileStream(filePath, FileMode.Open);
                    byte[] bytes = new byte[(int)fs.Length];
                    fs.Read(bytes, 0, bytes.Length);
                    fs.Close();
    
                    //Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileInfo.Name));
                    Response.AddHeader("Content-Length", "" + fileInfo.Length.ToString());
                    Response.AddHeader("Content-Transfer-Encoding", "binary");
                    Response.ContentType = "application/octet-stream";  
                    Response.ContentEncoding = System.Text.Encoding.UTF8;
                    Response.BinaryWrite(bytes);
                    Response.Flush();
                    Response.End();
                }          
            }

    前台代码:

    html:
    
          <video id="video_player" width="660" height="364" controls="controls"></video>
    
    
             Js:
                //创建XMLHttpRequest对象
                var xhr = new XMLHttpRequest();
                //配置请求方式、请求地址以及是否同步
                xhr.open('POST', 'Video', true);
                //设置请求结果类型为blob
                xhr.responseType = 'blob';
                //请求成功回调函数
                xhr.onload = function (e) {
                    if (this.status == 200) {//请求成功
                        //获取blob对象
                        var blob = this.response;
                        var video = document.getElementById('video_player');
                        //获取blob对象地址,并把值赋给容器
                        var obj_url = window.URL.createObjectURL(blob);
                        video.src = obj_url;
                        //video.play();
                        setTimeout("revokeUrl('" + obj_url + "')", "2000");
                    }
                };
                xhr.send();
    
    
    
           function revokeUrl(url) {
                window.URL.revokeObjectURL(url);
            }
  • 相关阅读:
    asp.net core mvc 之 DynamicApi
    打造适用于c#的feign
    asp.net App_Code文件夹相关操作
    基于Mono.Cecil的静态注入
    补充ICache
    自制简单实用IoC
    自制简单的.Net ORM框架 (一) 简介
    解决Asp.net Mvc中使用异步的时候HttpContext.Current为null的方法
    微信开发之.Net
    VS2017 网站打包发布生成的文件中包含.pdb文件,解决办法
  • 原文地址:https://www.cnblogs.com/vaevvaev/p/11433228.html
Copyright © 2020-2023  润新知