Java實現(xiàn)音頻轉(zhuǎn)碼(WAV、MP3、AMR互轉(zhuǎn))
1.背景
最近在集成一款產(chǎn)品支持語音雙向?qū)χv,首先是采集小程序的音頻下發(fā)給設(shè)備端,然后可以控制設(shè)備錄音生成音頻鏈路讓小程序播放。在這個過程中發(fā)現(xiàn),設(shè)備除了AMR格式的音頻外,其他的音頻都不支持,而微信小程序有不支持AMR格式的音頻文件,所以這里需要進行音頻轉(zhuǎn)碼。
2.Java實現(xiàn)
2.1.引入Jar包
<dependency> <groupId>ws.schild</groupId> <artifactId>jave-core</artifactId> <version>2.4.4</version> </dependency> <!-- Linux 環(huán)境 --> <dependency> <groupId>ws.schild</groupId> <artifactId>jave-native-linux64</artifactId> <version>2.4.4</version> </dependency> <!-- Windows 環(huán)境 --> <!-- <dependency>--> <!-- <groupId>ws.schild</groupId>--> <!-- <artifactId>jave-native-win64</artifactId>--> <!-- <version>2.4.4</version>--> <!-- </dependency>-->
如果運行環(huán)境是Linux則使用:jave-native-linux64
如果運行環(huán)境是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 Attributes AudioAttributes 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 attributes EncodingAttributes attrs = new EncodingAttributes(); attrs.setFormat(format); attrs.setAudioAttributes(audio); //Encode Encoder encoder = new Encoder(); encoder.encode(new MultimediaObject(source), target, attrs); } catch (Exception ex) { ex.printStackTrace(); } }
到此這篇關(guān)于Java實現(xiàn)音頻轉(zhuǎn)碼(WAV、MP3、AMR互轉(zhuǎn))的文章就介紹到這了,更多相關(guān)Java 音頻轉(zhuǎn)碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實現(xiàn)訂單超時未支付自動取消的8種方法總結(jié)
這篇文章主要為大家介紹了Java實現(xiàn)訂單超時未支付自動取消功能的8種不同方法,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下2022-08-08SpringBoot 如何添加容器啟動的初始化邏輯的操作方法
這篇文章主要介紹了SpringBoot 如何添加容器啟動的初始化邏輯,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09SpringBoot2.0整合jackson配置日期格式化和反序列化的實現(xiàn)
這篇文章主要介紹了SpringBoot2.0整合jackson配置日期格式化和反序列化的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-11-11