Java实现音频转码,WAV、MP3、AMR互转

编程入门 行业动态 更新时间:2024-10-26 20:33:44

Java实现<a href=https://www.elefans.com/category/jswz/34/1768490.html style=音频转码,WAV、MP3、AMR互转"/>

Java实现音频转码,WAV、MP3、AMR互转

1.背景

最近在集成一款产品支持语音双向对讲,首先是采集小程序的音频下发给设备端,然后可以控制设备录音生成音频链路让小程序播放。在这个过程中发现,设备除了AMR格式的音频外,其他的音频都不支持,而微信小程序有不支持AMR格式的音频文件,所以这里需要进行音频转码。

2.Java实现

2.1.引入Jar包

        <dependency><groupId>ws.schild</groupId><artifactId>jave-core</artifactId><version>2.4.4</version></dependency><!-- Linux 环境 --><dependency><groupId>ws.schild</groupId><artifactId>jave-native-linux64</artifactId><version>2.4.4</version></dependency><!-- Windows 环境 -->
<!--        <dependency>-->
<!--            <groupId>ws.schild</groupId>-->
<!--            <artifactId>jave-native-win64</artifactId>-->
<!--            <version>2.4.4</version>-->
<!--        </dependency>-->

如果运行环境是Linux则使用:jave-native-linux64

如果运行环境是Windows则使用: jave-native-win64

2.2.封装工具方法

我们可以将源音频文件按照需求输出成:wav/mp3/amr

/*** 音频格式处理* @param source 源音频文件* @param target 输出的音频文件* @param format wav/mp3/amr*/public static void audioFormatConversion(File source,File target,String format) {try {//Audio AttributesAudioAttributes audio = new AudioAttributes();if(format.equals("wav")) {audio.setCodec("pcm_s16le");}else if(format.equals("mp3")) {audio.setCodec("libmp3lame");}else if(format.equals("amr")){audio.setCodec("libvo_amrwbenc");}audio.setBitRate(16000);audio.setChannels(1);audio.setSamplingRate(16000);//Encoding attributesEncodingAttributes attrs = new EncodingAttributes();attrs.setFormat(format);attrs.setAudioAttributes(audio);//EncodeEncoder encoder = new Encoder();encoder.encode(new MultimediaObject(source), target, attrs);} catch (Exception ex) {ex.printStackTrace();}}

更多推荐

Java实现音频转码,WAV、MP3、AMR互转

本文发布于:2023-11-15 03:10:57,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1592700.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:音频   WAV   Java   互转   AMR

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!