amr格式转mp3和直接播放amr格式的文件-sunziren
原创文章,转载请注明出处!
前言:
amr作为一种高压缩比的音频格式,受到很多客户的青睐。本文主要涉及两部分的内容,一是amr如何转为mp3格式,二是如何直接播放amr格式的文件。
1. 如何使用Java将amr格式的文件转化为mp3格式的文件?
要实现转化需要一个依赖:
<dependency>
<groupId>ws.schild</groupId>
<artifactId>jave-core</artifactId>
<version>2.4.4</version>
</dependency>
上面的这个依赖本质上是封装一堆对于ffmpeg的调用接口,因此你的环境中要安装ffmpeg,否则单有jar包是没用的。你可以去下载并安装你系统对应版本的ffmpeg,然后配置环境变量,最后确认ffmpeg -version命令正常使用就表示安装成功。
有了jar包和ffmpeg,剩下的你只需要如下代码就可以了:
public boolean amrToMp3(java.io.File source, java.io.File target) throws InputFormatException {
boolean bool = false;
AudioAttributes audio = new AudioAttributes();
audio.setCodec("libmp3lame");
EncodingAttributes attrs = new EncodingAttributes();
attrs.setFormat("mp3");
attrs.setAudioAttributes(audio);
Encoder encoder = new Encoder();
try {
MultimediaObject multimediaObject = new MultimediaObject(source);
encoder.encode(multimediaObject,target, attrs);
bool = true;
} catch (IllegalArgumentException | EncoderException e) {
e.printStackTrace();
bool = false;
}finally {
return bool;
}
}
这段代码传入源文件路径和目标文件路径,然后就会把amr转化为mp3。
我本来是想采用这种方法的,因为我本地是可以正常使用的,但是迫于服务器是基于arm版cpu的redhat 7.6,想要在这上面安装ffmpeg对我来说极度困难,要先下载ffmpeg源码,然后编译,然后配置环境变量,这个过程中的试错会耗费相当一部分时间,因此开始考虑,能不能用js播放amr文件?
2. 如何直接播放amr格式的文件?
在网上搜索了大量资料后,发现可以先把 amr转化为base64字符串,然后用js播放base64字符串即可。这个方法有个局限就是:如果base64字符串太长的话,程序运行会出错,因为我们amr来源于用户的录音,因此,我们可以控制录音时间最大值,所以这个问题得以解决。
相关 js我主要参考的是https://blog.csdn.net/qq_43466173/article/details/86540193这个博客,然后在网上找那个voice-2.0.js找了好久找到了,怕侵权,我就不贴了。
这里再多说一句用法,引入js后,先在页面加载时,初始化这个东西:RongIMLib.RongIMVoice.init();
然后你可以弄个button,点击的时候触发方法,传入amr转的base64字符串,(注意这个base64字符串一开始的逗号前面那一截不需要)RongIMLib.RongIMVoice.play(base64),页面这时候就会发出声音了。
大家如果想要可以私信我。
这就是处理amr问题的两个思路 ,弟兄们听懂了吗?

amr格式转mp3和直接播放amr格式的文件-sunziren的更多相关文章
- Web 播放声音 — Flash 篇 (播放 AMR、WAV)
本文主要介绍 Flash 播放 AMR 格式 Base64码 音频. 在此之前么有接触过 Flash ,接触 AS3 是一头雾水,不过幸好有 TypeScript 和 JavaScript 的基础看起 ...
- Html 播放 mp4格式视频提示 没有发现支持的视频格式和mime类型
转自原文 Html 播放 mp4格式视频提示 没有发现支持的视频格式和mime类型 播放mp4格式的时候提示 Html 播放 mp4格式视频提示 没有发现支持的视频格式和mime类型 原因是在IIS中 ...
- 微信录音文件上传到服务器以及amr转化成MP3格式
微信公众号音频接口开发 根据业务需求,我们可能需要将微信录音保存到服务器,而通过微信上传语音接口上传到微信服务器的语音文件的有效期只有3天,所以需要将文件下载到我们自己的服务器. 上传语音接口 wx. ...
- 微信录音文件上传到服务器以及amr转化成MP3格式,linux上转换简单方法
微信公众号音频接口开发 根据业务需求,我们可能需要将微信录音保存到服务器,而通过微信上传语音接口上传到微信服务器的语音文件的有效期只有3天,所以需要将文件下载到我们自己的服务器. 上传语音接口 wx. ...
- 通过javascript 直接播放amr格式的语言
前段时间做了个功能(有2.3个月了,突然想起来了,就记录一下),语言播放.一开始觉得很简单~~~ 计划应用的是H5的audio标签,但因为这个标签不支持amr格式的语言,但是手机端传到后台的录音却都是 ...
- C# Window Form解决播放amr格式音乐问题
最近搞一个项目,需要获取微信端语音文件,下载之后发现是AMR格式的录音文件,这下把我搞晕了,C#中的4种播放模式不支持播放AMR,想到都觉得头痛,如何是好?最后找到的方案,其实也简单:windows ...
- linux下使用ffmpeg将amr转成mp3
说明:AMR格式是智能手机上的常用音频文件格式,比MP3格式的压缩比大.同样时长的AMR文件大概是MP3的十分之一,所以在移动互联项目中应用比较广泛.但目前AMR格式在个人电脑上应用较少,所以目前大部 ...
- web页面如何播放amr的音频文件
这个需求由来已久,公司的语音订单很多,每次客服都是从服务器down下语音来听.很不方便..于是我就上网扒拉看有么有什么web播放器能播放amr格式的音频文件,amr百度百科 总之找了很久.,,然后发现 ...
- 编译安装FFmpeg 要支持xvid、x264、mp3、ogg、amr、faac
编译安装FFmpeg 要支持xvid.x264.mp3.ogg.amr.faac libfaac faac格式的编解码包libmp3lame mp3格式编解码包libopencore-am ...
随机推荐
- 实验3: DHCP 基本配置
实验3-1: DHCP 基本配置 实验目的通过本实验可以掌握:(1)DHCP 的工作原理和工作过程(2)DHCP 服务器的基本配置和调试(3)客户端配置 拓扑结构 实验步骤n 步骤1:配置路由器 ...
- HTTP协议简单理解
1.概念: “超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必须遵守这个标准. 设计HTTP最初的目的是为了 ...
- 函数调用方式--__thiscall调用方式和__cdecl,__stdcall有什么区别
函数调用方式--__thiscall调用方式和__cdecl,__stdcall有什么区别 首先,__thiscall是关于类的一种调用方式,它与其他调用方式的最大区别是: __thiscall ...
- 对权值线段树剪枝的误解--以HDU6703为例
引子 对hdu6703,首先将问题转化为"询问一个排列中大于等于k的值里,下标超过r的最小权值是多少" 我们采用官方题解中的做法:权值线段树+剪枝 对(a[i],i)建线段树,查询 ...
- sqlserver install on linux chapter one
Hello The MS open the source to let people download source. You may ask where to download ? Ask goog ...
- Luinx安装RocketMQ
一.RocketMQ环境 准备两台虚拟机,分别为master01 和master02 二.安装JDK(两台虚拟机相同步骤) 1. 检查当前虚拟机环境有没有JDK rpm -qa|grep java ( ...
- SQLYOG导入数据时报错,出现找不到Microsoft office 元驱动程式,并且无法安装64位office Access驱动
当我们使用mysql导入外部数据时(如Excel表),有时会出现如下的错误问题,即找不到64位access驱动.为了解决这个问题,我们需要下载相应的驱动,通过下图中的点击此链接即可进入下载页面(htt ...
- Jmeter之下载文件
前言 我们可以利用postman工具来测试下载文件的接口,那么假如要利用Jmeter工具来进行下载接口的测试,又该如何测试呢? 下载文件的接口地址:/pinter/file/api/download? ...
- Sklearn——SVC学习笔记(图像分割)
新年第二更. 很长时间前就想总结一下用SVC来做图像分割的方法了,方法实现了,但是一直没有总结,今天再来回顾一遍. 首先介绍一下.今天要总结的图像分割其实属于像素级分类,其输出是把图像按照不同的类别逐 ...
- Asp.net core下利用EF core实现从数据实现多租户(3): 按Schema分离 附加:EF Migration 操作
前言 前段时间写了EF core实现多租户的文章,实现了根据数据库,数据表进行多租户数据隔离. 今天开始写按照Schema分离的文章. 其实还有一种,是通过在数据表内添加一个字段做多租户的,但是这种模 ...