当前位置:   article > 正文

Html5视频video标签中使用blob实现视频播放加密_video blob

video blob

 视频全终端观看

关键字:视频播放 

后端代码:

  1. /*
  2. * 在这里可以进行权限验证等操作
  3. */
  4. //创建文件对象
  5. File f = new File("E:\\test.mp4");
  6. //获取文件名称
  7. String fileName = f.getName();
  8. //导出文件
  9. String agent = getRequest().getHeader("User-Agent").toUpperCase();
  10. InputStream fis = null;
  11. OutputStream os = null;
  12. try {
  13. fis = new BufferedInputStream(new FileInputStream(f.getPath()));
  14. byte[] buffer;
  15. buffer = new byte[fis.available()];
  16. fis.read(buffer);
  17. getResponse().reset();
  18. //由于火狐和其他浏览器显示名称的方式不相同,需要进行不同的编码处理
  19. if(agent.indexOf("FIREFOX") != -1){//火狐浏览器
  20. getResponse().addHeader("Content-Disposition", "attachment;filename="+ new String(fileName.getBytes("GB2312"),"ISO-8859-1"));
  21. }else{//其他浏览器
  22. getResponse().addHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode(fileName, "UTF-8"));
  23. }
  24. //设置response编码
  25. getResponse().setCharacterEncoding("UTF-8");
  26. getResponse().addHeader("Content-Length", "" + f.length());
  27. //设置输出文件类型
  28. getResponse().setContentType("video/mpeg4");
  29. //获取response输出流
  30. os = getResponse().getOutputStream();
  31. // 输出文件
  32. os.write(buffer);
  33. }catch(Exception e){
  34. System.out.println(e.getMessage());
  35. } finally{
  36. //关闭流
  37. try {
  38. if(fis != null){
  39. fis.close();
  40. }
  41. } catch (IOException e) {
  42. System.out.println(e.getMessage());
  43. } finally{
  44. try {
  45. if(os != null){
  46. os.flush();
  47. }
  48. } catch (IOException e) {
  49. System.out.println(e.getMessage());
  50. } finally{
  51. try {
  52. if(os != null){
  53. os.close();
  54. }
  55. } catch (IOException e) {
  56. System.out.println(e.getMessage());
  57. }
  58. }
  59. }
  60. }

HTML5 Video 使用 Blob:

  1. //创建XMLHttpRequest对象
  2. var xhr = new XMLHttpRequest();
  3. //配置请求方式、请求地址以及是否同步
  4. xhr.open('POST', './play', true);
  5. //设置请求结果类型为blob
  6. xhr.responseType = 'blob';
  7. //请求成功回调函数
  8. xhr.onload = function(e) {
  9. if (this.status == 200) {//请求成功
  10. //获取blob对象
  11. var blob = this.response;
  12. //获取blob对象地址,并把值赋给容器
  13. $("#sound").attr("src", URL.createObjectURL(blob));
  14. }
  15. };
  16. xhr.send();

 HTML代码:

  1. <video id="sound" width="200" controls="controls"></video>

我的视频应用类原创文章

[ 视频安全 ] 相关原创文章

[ 视频直播 ] 相关原创文章

[ 视频存储与应用 ] 相关原创文章

[ 视频播放器 ] 相关文章

[ WebRTC ] 相关文章

[ 谷歌浏览器 ] 相关文章

[ 微信公众号运营 ] 相关文章

转载于:https://blog.csdn.net/ffffffff8/article/details/118596488

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/157943
推荐阅读
相关标签
  

闽ICP备14008679号