我们的产品或者运营为了监控主播聊天记录,给开发提了一个需求,就是在管理后台增加一个列表,用于查看主播和所有男用户的聊天记录。

初步完成需求,就是直接把聊天记录份分页显示出来,加了一些查询条件。

使用期间发现,音频文件并没有在线播放,要求能播放。

于是加了一段如下的代码,但是无法播放,后来发现我们的音频文件竟然是amr文件。

请注意:amr文件用<audio>标签是无法播放的

<audio controls="controls" ><source id="audioSouce_${index.count}" src="" type="audio/mpeg" />
</audio>

然后各种百度,大概就是有两种方法:

  1. 将amr文件转换成mp3文件;
  2. web 网页直接播放amr文件;

先说web网页播放amr文件,试了一下,但是发现js的FileReader无法读取服务器上的文件,用HttpRequest,大概就是域名或者nginx跨不过去。后来放弃了。

推荐链接:

https://blog.csdn.net/qq_43466173/article/details/86540193

https://www.cnblogs.com/yuhongda0315/p/5224188.html

说一下arm文件转换成mp3文件,

本身项目里有jave-1.0.2.jar,我看了一下这个版本也是最新的。但是转换出的mp3文件大小都是261kb,还无法播放。

百度一些资料后,大概就是有个ffmpeg。

我反复试了很多次,说一下最后的实现方式吧:

1.  并没有用jave,用的是linux命令执行的转换。

首先要安装一个ffmpeg。依据不同的系统下载:http://ffmpeg.org/download.html

2. 在linux的安装命令,执行ffmpeg -i ***.amr ***.mp3,然后用网页播放mp3文件,如果能播放就没问题。

3. 在java代码执行,执行ffmpeg -i ***.amr ***.mp3。注意:有的时候还是不会生成mp3文件,最后折中的办法是把amr文件的地址暴露出来,如果不能转换播放的, 直接就复制amr文件播放。

Process p = null;
Runtime runtime = Runtime.getRuntime();
try {p = runtime.exec(ffmpegPath + "./ffmpeg -i " + sourcePath + " " + targetPath);//执行ffmpeg.exe,前面是ffmpeg.exe的地址,中间是需要转换的文件地址,后面是转换后的文件地址。-i是转换方式,意思是可编码解码,mp3编码方式采用的是libmp3lame
} catch (IOException e) {logger.error("异常", e);
} finally {//释放进程try {p.getOutputStream().close();} catch (IOException e) {logger.error("异常", e);}try {p.getInputStream().close();} catch (IOException e) {logger.error("异常", e);}try {p.getErrorStream().close();} catch (IOException e) {logger.error("异常", e);}try {p.waitFor();} catch (InterruptedException e) {logger.error("异常", e);}runtime.freeMemory();
}

欢迎指教。

web网页播放音频文件相关推荐

  1. Discuz论坛web网页mp3音频播放器源码下载

    最近在做一个DZ论坛的搭建,在前几天的时候遇到Flash+Js的幻灯片的问题,特写了一篇<JS+Flash焦点图轮播源代码(2屏,3屏,多屏)>来记录论坛搭建过程遇到的一些技术性问题,以便 ...

  2. Unity 播放音频文件

    Unity 播放音频文件参考代码: 1 public void Play(string strSoundName, float autoDestroyTime = 0f, bool bLoop = f ...

  3. ArcGIS API for Silverlight 当DataGrid选中项时,地图聚焦弹出窗口,并可以播放音频文件...

    原文:ArcGIS API for Silverlight 当DataGrid选中项时,地图聚焦弹出窗口,并可以播放音频文件 先看效果图,然后上代码: <UserControl x:Class= ...

  4. C#调用mciSendString播放音频文件

    mciSendString函数是一个WinAPI,主要用来向MCI(Media Control Interface)设备发送字符串命令. 一.函数的声明如下: private static exter ...

  5. 如何实现在直播中播放音频文件

    在我们看直播的时候,经常会在直播过程中听到有掌声.口哨声.背景音乐等音效,那么这些声音特效是如何实现的呢大家有没有想过?anyRTC下面就为大家简单介绍一下如何实现在直播过程中播放音频文件. 功能描述 ...

  6. js 自动播放音频文件,报警提示音等

    js 自动播放音频文件,报警提示音等 谷歌浏览器的音频,默认是不能在页面载入时直接自动播放的. 至少需要用户点击一下页面,才可以播放音频,这个策略的目的是保证用户的体验感,如果每个页面都能在用户未接触 ...

  7. python播放音频文件_详解使用pygame播放一段MP3音频文件

    近日,在梳理pygame模块的时候发现一个很有用的模块mixer模块,这个模块翻译过来就是混音器,它可以加载和播放音频文件,甚至可以对混音器进行设置和处理,其功能非常强大.今天,我们一起来梳理一下混音 ...

  8. 使用树莓派播放音频文件

    使用树莓派播放音频文件 一.首先,我们需要对树莓派的音频输出进行设置 步骤1:登录树莓派,打开终端,执行sudo raspi-config命令 步骤2:选择第7项Advanced Options高级选 ...

  9. 使用微信API实现H5页面播放音频文件

    之前在处理H5页面播放音频文件的时候,总是需要搞一个https才能正常播放,一次无意浏览到了一个自动播放音频的页面,发现了使用微信Api可以不使用https也能播放音频文件.作为记录,简单页面实现如下 ...

  10. h5 audio播放音频文件

    h5 audio播放音频文件 注:下面html中样式及不相关的内容去掉了 第一个例子 播放没有防盗链的外网音频文件是可以的 <!doctype html> <html> < ...

最新文章

  1. K8S的横向自动扩容的功能Horizontal Pod Autoscaling
  2. 情感分析研究:还未结束!
  3. 第二层EtherChannel
  4. rtems线程管理与调度(一)
  5. OpenStack 实现技术分解 (7) 通用库 — oslo_config
  6. 单点登录cas常见问题(四) - ticket有哪些存储方式?
  7. 使用FCN做图像语义分割(实践篇)
  8. c语言time_t转oletime,DateTimeFormatter可以格式化日期,但不能读取它自己的格式
  9. python爬虫案例——根据网址爬取中文网站,获取标题、子连接、子连接数目、连接描述、中文分词列表
  10. 阶段3 1.Mybatis_01.Mybatis课程介绍及环境搭建_04.mybatis概述
  11. java double 移位_【原创】Java移位运算
  12. java简历包装项目经验,项目实战
  13. mac自带的词典不能用
  14. php 占比图,深度|丹尼·格林和克莱·汤普森,两位顶级3D差距在哪里?
  15. 南京农业大学计算机学硕分数线,2020南京农业大学考研复试分数线已公布
  16. C语音 unsigned char, int的取值范围
  17. 带你走进组件化(三)—— 曲径
  18. excel oss 上传_excel上传数据库失败
  19. 【软件构造】LAB1实验报告
  20. 百度首次元宇宙里开大会,李彦宏:智能交通将使5年内一线城市不再限购限行...

热门文章

  1. 微信小程序 体验版开启调试模式
  2. 计算机大学生三年计划,大学三年规划2000字.doc
  3. 【C语言】牛顿切线公式计算 a 的立方根 02
  4. 淘宝网卖家必须缴纳消保保证金才能发布宝贝的商品类目
  5. 飞信免费发短信API接口
  6. 【hacker的错误集】IndentationError: expected an indented block
  7. **python 随机生成一段旋律**
  8. C语言结构体通过 scanf初始化,C语言结构体数组内带字符数组初始化和赋值
  9. H264码流中SPS PPS SEI概念及详解
  10. java生成随机名字