当前位置: 首页 > news >正文

Java MP3转PCM

Java MP3转PCM

  • 1 添加依赖
  • 2 Java 代码

1 添加依赖

<dependency><groupId>com.googlecode.soundlibs</groupId><artifactId>mp3spi</artifactId><version>1.9.5.4</version>
</dependency>

2 Java 代码

package com.xu.music.player.player;import javazoom.spi.mpeg.sampled.file.MpegAudioFileReader;import javax.sound.sampled.AudioFileFormat;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;import java.io.File;/*** Java 音频播放** @author hyacinth* @date 2019年10月31日19:06:39*/
public class NewTest {public static void main(String[] args) throws Exception {toPcm("D:\\Kugou\\梦涵 - 加减乘除.mp3", "C:\\Users\\xuyq\\Desktop\\梦涵 - 加减乘除.pcm");}/*** Java Music mp3 转PCM** @param iPath mp3文件路径* @param oPath 保存PCM文件路径* @date 2019年10月25日 下午12:28:41*/public static void toPcm(String iPath, String oPath) throws Exception {AudioInputStream stream = new MpegAudioFileReader().getAudioInputStream(new File(iPath));AudioFormat format = stream.getFormat();format = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, format.getSampleRate(), 16, format.getChannels(),format.getChannels() * 2, format.getSampleRate(), false);stream = AudioSystem.getAudioInputStream(format, stream);AudioSystem.write(stream, AudioFileFormat.Type.WAVE, new File(oPath));}}

相关文章:

  • 一文读懂什么是HTTPS检查
  • linux centos7.9改dns和ip
  • 【rust】vscode下rust-analyzer和Rust Test Lens的Lens
  • windows11本地深度学习环境搭建Anacond,keras,tensorflow,pytorch, jupyter notebook
  • apachectl: line 79: 20233 Segmentation fault (core dumped) $HTTPD “$@“
  • 【卡码网】完全背包问题 52. 携带研究材料——代码随想录算法训练营Day44
  • 10 Redis之SB整合Redis+ 高并发问题 + 分布式锁
  • 探索无限:Sora与AI视频模型的技术革命 - 开创未来视觉艺术的新篇章
  • PHP中的飞碟运算符、取反运算符、对比非ASCII字符串、对比浮点数操作
  • Linux之安装jdk,tomcat,mysql,部署项目
  • yolov5-tracking-xxxsort yolov5融合六种跟踪算法(三)--目标跟踪
  • 现代化数据架构升级:毫末智行自动驾驶如何应对年增20PB的数据规模挑战?
  • Go命令源码文件
  • 探索创造无限可能——Autodesk AutoCAD 2022(CAD 2022)系统要求
  • 自然语言处理: 第十三章Xinference部署
  • canvas 五子棋游戏
  • centos安装java运行环境jdk+tomcat
  • Hexo+码云+git快速搭建免费的静态Blog
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • mockjs让前端开发独立于后端
  • nodejs实现webservice问题总结
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • python学习笔记-类对象的信息
  • V4L2视频输入框架概述
  • Vue 动态创建 component
  • WePY 在小程序性能调优上做出的探究
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 强力优化Rancher k8s中国区的使用体验
  • 如何用vue打造一个移动端音乐播放器
  • 删除表内多余的重复数据
  • 深入浅出webpack学习(1)--核心概念
  • 算法---两个栈实现一个队列
  • 学习Vue.js的五个小例子
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 我们雇佣了一只大猴子...
  • ​卜东波研究员:高观点下的少儿计算思维
  • #{} 和 ${}区别
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (二)windows配置JDK环境
  • (二)斐波那契Fabonacci函数
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • .naturalWidth 和naturalHeight属性,
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .net web项目 调用webService
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .Net6 Api Swagger配置
  • .net6+aspose.words导出word并转pdf
  • .NET单元测试
  • .net反混淆脱壳工具de4dot的使用
  • ::