码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Java实现音频转码,WAV、MP3、AMR互转


    1.背景

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

    2.Java实现

    2.1.引入Jar包

    1. <dependency>
    2. <groupId>ws.schildgroupId>
    3. <artifactId>jave-coreartifactId>
    4. <version>2.4.4version>
    5. dependency>
    6. <dependency>
    7. <groupId>ws.schildgroupId>
    8. <artifactId>jave-native-linux64artifactId>
    9. <version>2.4.4version>
    10. dependency>

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

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

    2.2.封装工具方法

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

    1. /**
    2. * 音频格式处理
    3. * @param source 源音频文件
    4. * @param target 输出的音频文件
    5. * @param format wav/mp3/amr
    6. */
    7. public static void audioFormatConversion(File source,File target,String format) {
    8. try {
    9. //Audio Attributes
    10. AudioAttributes audio = new AudioAttributes();
    11. if(format.equals("wav")) {
    12. audio.setCodec("pcm_s16le");
    13. }else if(format.equals("mp3")) {
    14. audio.setCodec("libmp3lame");
    15. }else if(format.equals("amr")){
    16. audio.setCodec("libvo_amrwbenc");
    17. }
    18. audio.setBitRate(16000);
    19. audio.setChannels(1);
    20. audio.setSamplingRate(16000);
    21. //Encoding attributes
    22. EncodingAttributes attrs = new EncodingAttributes();
    23. attrs.setFormat(format);
    24. attrs.setAudioAttributes(audio);
    25. //Encode
    26. Encoder encoder = new Encoder();
    27. encoder.encode(new MultimediaObject(source), target, attrs);
    28. } catch (Exception ex) {
    29. ex.printStackTrace();
    30. }
    31. }

  • 相关阅读:
    pytorch的mask-rcnn的模型参数解释
    Leo赠书活动-02期 【信息科技风险管理:合规管理、技术防控与数字化】
    (十一)admin-boot项目之整合redis
    VUE写后台管理(2)
    群晖7.2版本通过Container Manager安装xiaoya-alist
    反射、枚举及lambda表达式
    三菱PLC FX3U脉冲轴回原功能块(MC_Home_P)
    从中粮到克明,五谷道场还有逆袭机会吗?
    Kotlin高仿微信-第29篇-朋友圈-发布作品(图片)
    电脑异常关机录屏/软件/程序异常停止/安卓手机/数据丢失找回方案
  • 原文地址:https://blog.csdn.net/qq_17486399/article/details/134358990
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号