最近在做一个大屏系统时,需要在界面中播放一段视频,由于跨域问题,最后决定使用视频流的方式,把音频文件传到前端进行播放。

后端Java代码如下:

@RequestMapping(value = "/videoFlow", method = RequestMethod.GET)

public void videoFlow(HttpServletRequest request,

HttpServletResponse httpServletResponse, String fileName) {

String templeId = request.getParameter("templeId");// 寺庙ID

String propName[] = new String[] { "fileSubordinateId", "fileFrom" };

Object propValue[] = new Object[] { Long.parseLong(templeId), 1 };

List tfList = templeFileService.queryByProerties(propName,

propValue);

String fileSrc = null;

if (StringUtils.isNotBlank(tfList)) {

for (TempleFile tf : tfList) {

if (tf.getFileType().intValue() == 2) {

fileSrc = tf.getFileSavePath();

break;

}

}

}

byte[] bytes = changeTobyte(fileSrc);

httpServletResponse.setContentType("application/octet-stream");

httpServletResponse.setContentLength(bytes.length);

try {

httpServletResponse.getOutputStream().write(bytes);

} catch (IOException e) {

System.out.println("IO异常----");

}

}

public byte[] changeTobyte(String filePath) {

byte[] buffer = null;

try {

File file = new File(filePath);

FileInputStream fis = new FileInputStream(file);

ByteArrayOutputStream bos = new ByteArrayOutputStream();

byte[] b = new byte[1024];

int n;

while ((n = fis.read(b)) != -1) {

bos.write(b, 0, n);

}

fis.close();

bos.close();

buffer = bos.toByteArray();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return buffer;

}

前端代码

如下所示:

结果上面两步,就可以在前端正常播放map4文件了。

java播放本地声音流_前端Web界面播放Java后端返回的音频流,视频流相关推荐

  1. Java和php访问数据库对比_在Web开发方面Java和PHP的比较

    比较PHP和JSP这两个Web开发技术,在目前的情况是其实是比较PHP和Java的Web开发.以下是我就几个主要方面进行的比较: 一. 语言比较 PHP是解释执行的服务器脚本语言,首先php有简单容易 ...

  2. java中execution的作用_一文初步了解Java虚拟机

    大家都知道,Java中JVM的重要性,学习了JVM你对Java的运行机制.编译过程和如何对Java程序进行调优相信都会有一个很好的认知. 什么是JVM? JVM(Java Virtual Machin ...

  3. java 调用webapi json_java通过url调用web api并接收其返回的json

    java通过url调用webapi并接收其返回的json数据,但现在结果总是:{"result":4,"data":{}}(未认证:),帮助文档如下:API使用 ...

  4. java五子棋代码详解_代码详解:Java和Valohai的深度学习之旅

    全文共10735字,预计学习时长22分钟或更长 有一款生命周期管理工具(也称云服务)叫做Valohai,它有着友好的用户界面和简洁的布局设计. 许多有关Valohai的案例和文档都是基于Python和 ...

  5. 开发转测试没人要_前端开发,测试,后端,该如何选择?

    一般来说前端会比后端简单一些的,初学者或者转行可能考虑前端多一点,但是后端开发的薪水又比前端高一些,就是比较枯燥. 前端开发 我目前一直在自学前端,从网上找资料,然后听课,只要是对编程有兴趣,应该都能 ...

  6. java实现次方的运算_【技术干货】Java 面试宝典:Java 基础部分(1)

    海牛学院的 | 第 616 期 本文预计阅读 |18 分钟 Java 基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法, ...

  7. java小程序详解_微信小程序登录Java后台接口(详解,附示例代码)

    首先看一下官方文档 地址:微信小程序官方文档API登录接口 我们先对官方给的时序图进行简单的分析 1.当小程序调用wx.login()时,会获得一个code(临时登录凭证),然后我们需要用wx.req ...

  8. html怎样手机播放本地视频播放器,手机优酷怎么播放本地视频 本地文件导入方法...

    优酷下载的视频一般都会是KUX格式,只能使用优酷进行播放,比较霸道,那么反过来优酷是否可以播放本地视频呢?自然是可以的,下面就跟小编了解下吧. 方法一:找到视频选择打开方式 首先在智能手机的文件管理中 ...

  9. VLC更改设置,播放本地H264和H265流媒体文件和播放帧率

    VLC更改设置,播放本地H264和H265流媒体文件 步骤1:单击"工具"->"偏好设置".在"偏好设置"对话框的左下角的" ...

最新文章

  1. 如何有效防止域名被电信服务商劫持(电信114弹窗广告)
  2. Android IOS WebRTC 音视频开发总结(二三)-- hurtc使用说明
  3. Redis进阶- Redisson分布式锁实现原理及源码解析
  4. oracle虚拟机 centos6.5,虚拟机oracle virtualbox 上安装centos6.5 网络设置
  5. 小记:在WSS语言包升级问题
  6. Flex 获取时间戳、随机数
  7. [scikit-learn 机器学习] 3. K-近邻算法分类和回归
  8. 06.QT菜单栏QAction学习(二)
  9. Linux中锁的总结
  10. Atitit 为什么互联网金融会得到高层的支持 ----面子工程战略 政绩战略 大事业战略 高层需要在意识形态创新全球,政绩工程 得到合法性。 银行有很多家,而且别的区域也有。。不独特。。但是支付
  11. Atitit.增强系统稳定性----虚拟内存的设置
  12. 雅虎团队经验:网站页面性能优化的 34条
  13. python用于cad_python cad
  14. c语言计算音频分贝函数,如果用c语言程序读取一段音频文件要如何做,具体要调用哪些函数,在网上搜索了半天,乱七八糟的,找不到什么有用的信息...
  15. oracle追加imp,imp倒入的数据是追加,而不是替换,需要什么参数?
  16. 喵哈哈村的魔法考试 Round #6 (Div.3) 题解
  17. oracle中毒,oracle数据库中毒恢复 oracle数据库解密恢复 服务器中勒索病毒解密恢复.Hermes666...
  18. 巧妙的通过二维码在手机和电脑传递小量数据
  19. 恶意软件Emotet卷土重来滥用.LNK文件进行攻击,你只需要一项技术就能有效保护组织
  20. 2020年中国球墨铸管行业发展背景、竞争格局及政策环境分析,城市管道建设带来行业增量,新兴铸管是行业龙头「图」

热门文章

  1. android studio创建模板,Android Studio为新项目创建项目模板
  2. 哲思沙龙第11期:回归社区
  3. ensp--静态ECMP和浮动静态路由配置
  4. 教育邮箱注册申请?如何申请学校邮箱?学校邮箱怎么注册?
  5. 习题 14.1 求一元二次方程式ax^2+bx+c=0的实根,如果方程没有实根,则输出有关警告信息。
  6. 树莓派(四):使用摄像头实现拍照和远程监控功能
  7. centos7安装zookeeper
  8. 一个超级懒鬼的jupyter环境搭建教学
  9. DDD - 一文读懂DDD领域驱动设计
  10. tqdm介绍以及用法