首先感谢 :

直接上代码

1.首先引入maven依赖(使用maven这点我很喜欢)

com.github.dadiyang

jave

1.0.4

2.调用 AudioUtils.amrToMp3 方法

public voidamrToMp3() {

File source= new File("target/test-classes/material/testAudio.amr");

File target= new File("testAudio.mp3");

it.sauronsoftware.jave.AudioUtils.amrToMp3(source, target);

}

结束:三行代码搞定格式转换

探索过程

最近接到基于微信公众号开发的需求,在处理微信消息的时候,发现语音类型的消息微信推送过来的是 amr 格式的文件,而在网页 HTML5的audio标签不支持amr格式,很是麻烦。

于是到处查资料,发现了 JAVE 这个项目,它封装了 ffmpeg 的命令,让开发者可以通过 Java 转换文件格式。

不幸的是,这个项目可谓年久失修,存在以下几个问题

JAVE 项目的问题

项目老旧没再维护。官网最近版本是2009年发布的,其依赖的ffmpeg早已过时,很多情况下用不了。

转码一直报异常 EncoderException: Stream mapping

没有发布maven仓库,而且 JAVE 本身也不是一个maven项目

不支持Mac OS

解决

本项目为解决上述问题,根据网上的资料进行整理和修改,我创建了一个 JAVE开源项目 并且发布到 maven中央仓库,让整个解决方案变得更加简单。

项目特点

这是一个maven项目,而且已发布到中央仓库。

项目依赖的 ffmpeg 可执行文件经过验证可以使用(单元测试中提供了一个简单的检验方法)

解决了amr转mp3出现的 EncoderException: Stream mapping

支持 Linux/Windows/Mac 平台

JAVE原理

初始化时判断当前运行环境,将bin目录中对应的 ffmpeg 可执行文件拷贝到临时目录中

根据文件类型及配置通过 Runtime.getRuntime().exec(cmd) 执行 ffmpeg 对应的转码命令

自定义 ffmpeg 路径

如果程序无法通过拷贝资源文件的方式获取到 ffmpeg 的可执行文件或者内置的 ffmpeg 不支持你所使用的操作系统

你可以通过环境变量或者在 java 中设置 System.setProperty("ffmpeg.home", "ffmpeg可执行文件所在的目录") 的方式指定你的系统中安装的可用的 ffmpeg 文件的目录,如 System.setProperty("ffmpeg.home", "/usr/local/bin/")

参考

《解決linux AMR轉MP3出現轉碼成功卻無法播放的問題》:

java 微信语音下载电脑版,完美解决:Java微信语音amr格式转mp3格式,兼容Linux/Mac/Windows,支持Maven...相关推荐

  1. 完美解决:Java微信语音amr格式转mp3格式,兼容Linux/Mac/Windows,支持Maven

    少费话,先上代码 引入 maven 依赖 <dependency><groupId>com.github.dadiyang</groupId><artifac ...

  2. java 微信语音下载电脑版下载_java微信server录音下载到自己server

    本文实例为大家分享了java微信server录音下载到自己server的具体代码,供大家参考,具体内容如下 /** * @author why * */ public class VoiceDownl ...

  3. Adobe flash cs5 的Java运行时环境初始化错误 完美解决方法

    Adobe flash cs5 的Java运行时环境初始化错误 完美解决方法 下载网络上的Adobe flash cs5 精简版(绿色版),Java运行时环境初始化时出现错误,你可能需要重装Flash ...

  4. PHP文字转语音排号声音,文字转语音神器电脑版

    文字转语音神器电脑版是一款热门的生活工具软件,功能齐全,操作简单流畅,具备良好的用户体验.本站提供文字转语音神器电脑版下载.文字转语音神器电脑版是一款基于语音合成技术的专业语音合成配音软件.致力于做国 ...

  5. 最佳iOS设备管理器imazing 2.16.9官网Mac/Windows下载电脑版怎么下载安装

    imazing 2.16.9官网Mac/Windows下载电脑版是款针对苹果设备所打造的管理工具.iMazing为用户提供多种设备管理功能,每一位用户都能以自己的形式管理苹果设备.iMazing与苹果 ...

  6. ios设备管理软件 2.16.9官网Mac/Windows下载电脑版功能介绍

    imazing 2.16.9官网Mac/Windows下载电脑版是款针对苹果设备所打造的管理工具.iMazing为用户提供多种设备管理功能,每一位用户都能以自己的形式管理苹果设备.iMazing与苹果 ...

  7. linux java amr转mp3_本工具用于将微信语音 amr 格式转换为 mp3 格式以便在 html5 的 audio 标签中进行播放...

    音频转码工具 本工具主要用于将微信语音 amr 格式转换为 mp3 格式以便在 html5 的 audio 标签中进行播放. 支持 Linux/Windows/Mac 平台 因为是基于 JAVE 项目 ...

  8. java amr音频转码_jave: 音频转码工具,主要用于将微信语音 amr 格式转换为 mp3 格式以便在 html5 的 audio 标签中进行播放...

    音频转码工具 本工具主要用于将微信语音 amr 格式转换为 mp3 格式以便在 html5 的 audio 标签中进行播放. 支持 Linux/Windows/Mac 平台 因为是基于 JAVE 项目 ...

  9. Java微信语音amr格式转mp3格式

    完美解决个人微信音频amr文件与mp3格式互转 1.安装gcc ffmpeg wget http://downloads.sourceforge.net/lame/lame-3.100.tar.gz ...

最新文章

  1. 区间第K大(划分树)
  2. scp linux 自动化,expect(spawn) 自动化git提交和scp拷贝---centos(linux)
  3. 一步一步SharePoint 2007之二十八:实现WebPart的单步调试
  4. Linux下mail/mailx命令发送邮件
  5. 根据用指定的月份,打印该月所属的季节(if else)3,4,5 春季 6,7,8 为夏季 9,10,11 秋季 12,1,2为冬季(switch 与 if(){}else{})两种写法
  6. [转]亿万富翁对大学生的18句话
  7. oracle虚拟机磁盘共享,在虚拟机上VM 添加一块共享磁盘方法 支持Oracle 10g RAC
  8. 常用Linux命令--CPU和GPU查看
  9. 遥感原理与应用总结——第一章:遥感原理的基本概念
  10. 项目管理:项目进度优化策略
  11. android 样式 下载,VolumeStyles软件下载官方
  12. OneAPIConnect(一) 欧姆龙FINS协议实现源代码
  13. 使用RMAN备份时应如何处置归档日志文件
  14. 闭关之 Vulkan 应用开发指南笔记(二):队列、命令、移动数据和展示
  15. ftp 连接失败。500 OOPS: cannot change directory:
  16. 植物大战僵尸海盗22困难通关
  17. Android终端实现个人中心界面
  18. 几何画板与运筹学作图注记
  19. 207399-07-3,IR-780;IR-808;1558079-49-4,IR-825
  20. 计算机用户名密码不知道了怎么改,电脑系统账号administrator设置了密码,密码忘记了怎么办?...

热门文章

  1. 内存泄漏和内存溢出以及原因和解决方案
  2. 代码随想录算法训练营第七天| 454.四数相加II 、383. 赎金信 、15. 三数之和 、18. 四数之和 。
  3. Change maker problem-找零(1-99美分)
  4. [DeeplearningAI笔记]改善深层神经网络_优化算法2.1_2.2_mini-batch梯度下降法
  5. iOS Xcode快捷键大全(常用)
  6. iOS 画圆的clockWise
  7. Java 随机数产生 Random和Math 解决
  8. Vue进阶(幺肆叁):如何用绝对定位(position:absolute)完美定位布局及其注意事项
  9. Python3中pickle模块介绍
  10. 使用LaTeX制作海报