工作中需要在界面播放语音,网上找了许多js插件感觉都不是太好用,直到看到这个jPlayer,很强大也方便上手,内置了许多皮肤,就决定用它了。本文将实现从java后台返回流到前端,jPlayer播放。


java后台代码:

@RequestMapping("getVoice")public void voice(HttpServletRequest request , HttpServletResponse response) throws IOException {String filePath = "XXX.wav";//文件路径response.setContentType("audio/x-wav|wav");ServletOutputStream out;  File file = new File(filePath);try {if(file.exists()) {FileInputStream inputStream = new FileInputStream(file);    //通过response获取ServletOutputStream对象(out)  out = response.getOutputStream();  int b = 0;  byte[] buffer = new byte[512];  while (b != -1){  b = inputStream.read(buffer);  //4.写到输出流(out)中  out.write(buffer,0,b);  }  inputStream.close();  out.close();  out.flush(); }else {log.info("文件不存在");}} catch (IOException e) {  e.printStackTrace();  }}

html代码:
<html>
<head>
<title></title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
<link rel="stylesheet" href="../../plugins/jPlayer/skin/pink.flag/jplayer.pink.flag.css">
<script src="../../libs/jquery.min.js"></script>
<script src="../../plugins/jPlayer/jquery.jplayer.js"></script></head>
<body>
<div id="jquery_jplayer_1" class="jp-jplayer"></div>
<div id="jp_container_1" class="jp-audio" role="application" aria-label="media player"><div class="jp-type-single"><div class="jp-gui jp-interface"><div class="jp-volume-controls"><button class="jp-mute" role="button" tabindex="0">mute</button><button class="jp-volume-max" role="button" tabindex="0">max volume</button><div class="jp-volume-bar"><div class="jp-volume-bar-value"></div></div></div><div class="jp-controls-holder"><div class="jp-controls"><button class="jp-play" role="button" tabindex="0">play</button><button class="jp-stop" role="button" tabindex="0">stop</button></div><div class="jp-progress"><div class="jp-seek-bar"><div class="jp-play-bar"></div></div></div><div class="jp-current-time" role="timer" aria-label="time"> </div><div class="jp-duration" role="timer" aria-label="duration"> </div><div class="jp-toggles"><button class="jp-repeat" role="button" tabindex="0">repeat</button></div></div></div><div class="jp-details"><div class="jp-title" aria-label="title"> </div></div><div class="jp-no-solution"><span>Update Required</span>To play the media you will need to either update your browser to a recent version or update your <a href="http://get.adobe.com/flashplayer/" target="_blank">Flash plugin</a>.</div></div>
</div>
</body>
</html>

js代码:
$(document).ready(function(){$("#jquery_jplayer_1").jPlayer({ready: function (event) {$(this).jPlayer("setMedia", {title: "Bubble",wav: "http://localhost:8081/getVoice"});},swfPath: "../../plugins/jPlayer/jplayer",//swf文件存放路径supplied: "wav",wmode: "window",useStateClassSkin: true,autoBlur: false,smoothPlayBar: true,keyEnabled: true,remainingDuration: true,toggleDuration: true});
});
此处是播放wav,当然也支持mp3,各种视频

jPlayer播放后台返回的语音流相关推荐

  1. 红米note 4x播放视频切后台返回黑屏问题

    问题 使用mediaPlay+TextureView播放和显示视频,在红米note4x上视频播放时切后台返回时视频区域黑屏,提示音频可以继续播放,在其他手机上播放时没有这种问题. 代码 class V ...

  2. java pdf文件下载_Java后台返回PDF文件预览下载

    Java后台返回PDF文件预览下载 开始的代码的系统代码为: ResponseEntity onePdf = s3Wrapper.download(contractEntity.getContract ...

  3. 微信小程序根据后台返回值设置自己想要的结果

    今天做微信小程序充值列表 其中微信或者支付后台返回的是1和2 , 那么就需要判断返回值是否为1或者是2然后在改变 简单的就是在xml中判断下就行了 <view class='recharge_t ...

  4. ajax和map返回数据类型,ajax请求后台返回map类型并如何展示

    前台jsp或者ftl文件接收返回结果: 注意:value值用单引号,因为后台返回的结果是json字符串 前台js接收返回结果: success: function(data){ var result ...

  5. ajax返回实体类字符串,js使用ajax传值给后台,后台返回字符串处理方法

    之前使用js获取后台生成的JSON字符串,然后给select填充值,这次需要重新获取一次. 这里的目标是,在一个input输入框里,输入一个用户名,判断是否为空,是否不存在,如果存在返回几个字段给前台 ...

  6. vue 后台返回的文件流进行预览_vue项目-pdf预览和下载,后台返回文件流形式

    背景:正好最近碰到了这种需求,记录下来,方便以后查看. 后端返回的文件流数据如下图所示: 后台返回数据.png 一.pdf的预览 一开始的时候百度了很多方法,有建议用pdfJs插件的,有iframe嵌 ...

  7. vue在js上处理后台返回的数组_vuejs 根据后台返回数组,渲染图片路径

    后台返回的数组为: ["5", "1", "3", "2", "1",] 页面要实现对应数量的黄色星 ...

  8. jQuery接收后台返回的数据

    jQuery 可以直接接受,后台返回的数据 Controller方法 需要转换为JSONString List<AssayItemClassExt> assayItemClassExtLi ...

  9. iOS 后台返回json解析出现的null的解决办法

    在后台返回值为Null为空时,我们代码没有判断时,程序就会崩溃.当时一直很疑惑是为啥,后来发现是数据问题,由于服务器的数据库中有些字段为空,然后以Json形式返回给客户端时就会出现这样的数据.当我们通 ...

最新文章

  1. js kettle 设置变量_kettle与钉钉结合的企业内部应用扩展01
  2. do-release-upgrade do not work
  3. 算法 --- 翻转二叉树
  4. CentOS 5.6 快速搭建LAMP
  5. 如何在IE浏览器播放RTSP或RTMP流
  6. 地方政府大数据发展的现实与理想
  7. 信息学奥赛一本通(1196:踩方格)
  8. 语音性别识别_语音识别识别性别_语音文字识别 - 云+社区 - 腾讯云
  9. iOS中的UISearchBar
  10. 【颜色识别】【Python+OpenCV】KNN(K近邻算法)实现魔方颜色识别【 3-1】
  11. 2021中国WMS市场发展趋势和特点
  12. python下dicom格式图像转化为jpg格式图像
  13. python写的串口助手_Python实现的简单的单片机串口助手程序
  14. AlibabaCloud
  15. plot函数--R语言
  16. 专访 | 宋星 10 年启示录:数字营销如何觐见下一个 10 年?
  17. 给水管网漏损控制策略国内外差异与思考
  18. 垃圾邮件分类-朴素贝叶斯算法
  19. 一,Weston简介
  20. Mapreduce 跑的慢的原因

热门文章

  1. 公交车摄像头“偷拍走光”? 女乘客司机起纠纷
  2. 杰理之MP3编码格式选择【篇】
  3. excel数据处理工具开发小记
  4. ROS USB摄像头配置(单目和双目)
  5. 天河二号微型计算机,“天河二号”成为全球最快超级计算机
  6. 园林技术计算机应用技术,自考本科园林:2016年10月02316计算机应用技术历年真题及答案...
  7. 如何导出Yammer中User信息?
  8. 视频剪辑软件怎么调声像和音量?
  9. java毕业生设计中小学家校通系统计算机源码+系统+mysql+调试部署+lw
  10. android 日历源码解析,Android 4.0日历(calendar)源码分析之概览