mp3 pcm java_Java mp3文件转pcm文件

Java mp3文件转pcm文件package cn.zpy.util;

import java.io.File;

import java.io.IOException;

import javax.sound.sampled.AudioFileFormat;

import javax.sound.sampled.AudioFormat;

import javax.sound.sampled.AudioInputStream;

import javax.sound.sampled.AudioSystem;

import javazoom.spi.mpeg.sampled.file.MpegAudioFileReader;

/**

* 音频转换工具类

*

*/

public class AudioUtils {

/**

* MP3转换PCM文件方法

*

* @param mp3filepath 原始文件路径

* @param pcmfilepath 转换文件的保存路径

* @return

* @throws Exception

*/

public static boolean convertMP32Pcm(String mp3filepath, String pcmfilepath){

try {

//获取文件的音频流,pcm的格式

AudioInputStream audioInputStream = getPcmAudioInputStream(mp3filepath);

//将音频转化为 pcm的格式保存下来

AudioSystem.write(audioInputStream, AudioFileFormat.Type.WAVE, new File(pcmfilepath));

return true;

} catch (IOException e) {

e.printStackTrace();

return false;

}

}

/**

* 机能概要:获取文件的音频流

* @param mp3filepath

* @return

*/

private static AudioInputStream getPcmAudioInputStream(String mp3filepath) {

File mp3 = new File(mp3filepath);

AudioInputStream audioInputStream = null;

AudioFormat targetFormat = null;

try {

AudioInputStream in = null;

//读取音频文件的类

MpegAudioFileReader mp = new MpegAudioFileReader();

in = mp.getAudioInputStream(mp3);

AudioFormat baseFormat = in.getFormat();

//设定输出格式为pcm格式的音频文件

targetFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, baseFormat.getSampleRate(), 16,

baseFormat.getChannels(), baseFormat.getChannels() * 2, baseFormat.getSampleRate(), false);

//输出到音频

audioInputStream = AudioSystem.getAudioInputStream(targetFormat, in);

} catch (Exception e) {

e.printStackTrace();

}

return audioInputStream;

}

}

5f44669d9023f819b9cfa4031178418d.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/273134.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Material design 色彩

八月已过去,九月刚来到~暑假已过去~九月上学季~~又迎来了一个桂花飘香的季节,你是否有了新的目标和计划~~所以在九月初始给大家带来一个全新的东西(ps:对于我来说是全新的东西)——Material Design~~九月让我们一起好好…

内存查看工具RAMMAP说明

参考 Technet Process Private: 分配给单一Process专用的内存 Mapped File: 用来储放档案内容快取(Cache)的内存空间 Shared Memory: 标注给多个Process共用的内存分页(Page,内存管理单位) Page Table: 用来描述虚拟内存位址的分页表(裡面是一笔一笔的PTE&…

php接口和java接口_java和php接口的区别是什么

java和php接口的区别是:1、php接口中的抽象方法只能是public的,默认也是public权限;2、java中私有方法使用private修饰,供接口中的默认方法或者静态方法调用。【相关学习推荐:php编程(视频)】php:规范:接口…

java hql多条件查询_使用hql语句怎样实现多条件查询

展开全部这里只写了DAO和业务62616964757a686964616fe59b9ee7ad9431333264623331逻辑组件、ACTION的具体实现类,PO和和接口自己应该会写吧,HQL采用的是结合SQL的那种写法,增删改查全在里面了,修改下马上就能跑了,不清楚…

闪回数据库

Flashbacking a database means going back to a previous database state.闪回数据库到之前数据库的状态The Flashback Database feature provides a way to quickly revert entire Oracle database to the state it was in at a past point in time. 闪回数据库特性提供了一种…

java.net.unknown_android -------- java.net.UnknownServiceException

最近升级了Android的API版本时 ,导致我的网络请求失败了,出现了这个错误 java.net.UnknownServiceException,这个错误,我在网上查到这个主要是由于,我们的OkHttp3会默认使用密文传输,而我们的代码中使用Htt…

Visual Studio下Qt调用IDL

一.简单介绍: 1.ActiveQt包含QAxContainer和QAxServer组件。 1) QAxContainer允许使用COM对象,并且可以将ActiveX控件嵌入到Qt程序中去。 QAxContainer是有三个类组成的。分别是: QAxObject封装了COM对象 QAxWidget封装了ActiveX控…

安装java过程_Java的安装过程

记录一下自己在Windowns下安装java的过程打开网址后要先登录,如果没有号就先注册,然后才能下载step1:下载JDK(1)将鼠标指向download,会出现如下界面:(2)点击左上角PopularDownloads下的 Java for Developers进入如下界面&#xff…

dockerfile源码安装mysql_docker容器详解五: dockerfile实现tomcat环境以及源码安装mysql...

tomcat上一节讲到了dockerfile的基础,这一次咱们来作一个小的练习首先要了解tomcat安装的整个过程首先搭建 jdk环境:下载jdk包,解压以后添加环境变量而后搭建tomcat:下载tomcat包,解压,修改配置文件到一个工…

SQL server 2008数据库的备份与还原、分离(转)

一、SQL数据库的备份: 1、依次打开 开始菜单 → 程序 → Microsoft SQL Server 2008 → SQL Server Management Studio → 数据库:Dsideal_school_db既是我们需要备份的学籍数据库 图(1) 2、选择要备份的数据库“Dsideal_school_d…

Java做一个动画效果音量调节_设计与实现一个 ISoundable 接口,该接口具有发声功能、还能调节音量大小...

[java]代码库package experiment6;public interface ISoundable {public void increaseVolume();public void decreaseVolume();public void stopSound();public void playSound();}package experiment6;public class Radio implements ISoundable {public void increaseVolume…

人人都有极客精神

http://www.jisuanke.com/minicourse/59/438 人人公司是一家极为鼓励极客精神的公司,当有重要的项目需要上线但又时间太紧,甚至需要当天上线的时候,往往会挂起海盗旗开启电子日期显示,让大家可以在对时间有更明确的感知的情况下&a…

WPF入门教程系列十三——依赖属性(三)

四、 只读依赖属性 在以前在对于非WPF的功能来说,对于类的属性的封装中,经常会对那些希望暴露给外界只读操作的字段封装成只读属性,同样在WPF中也提供了只读属性的概念,如一些 WPF控件的依赖属性是只读的,它们经常用于…

企业服务总线全双工异步通信机

为了实现系统的高可靠性、高可用性和并行处理能力,我们经常使用一些负载均衡设备(例如F5)等集群解决方案。但,会有一些特殊的情况下,。例如,长连接、特殊的技术协议。不可用F5和其他设备来解决,…

java druid jdbc例子_JDBC【使用Druid连接数据库,DBUtils工具类的使用】

Druid连接数据库,DBUtils工具类的使用1.在maven中添加Druid依赖com.alibabadruid1.2.02.封装Druid连接方法import com.alibaba.druid.pool.DruidDataSource;import com.alibaba.druid.pool.DruidDataSourceFactory;import java.io.IOException;import java.io.Input…

java前后端接口文档_前后端交互接口设计规范

在开发web应用的时候,往往会涉及到一个问题,前端后接口定义的问题。接口定义设计的好坏很大程度上能影响一个项目的进度和可扩展性。但是前辈们在这个问题上留下了非常宝贵的一些常规的设计思路,值得我们参考。1、后端设计统一的返回模型在与…

2015 多校第三场

1002 求max&#xff08;f(a),f(b)&#xff09;, f为不重复的素因子个数&#xff0c; 在数据要求以内 &#xff0c; 每个数最多有7个&#xff0c;可以打表。 1 /*Author :usedrose */2 /*Created Time :2015/7/29 11:32:09*/3 /*File Name :2.cpp*/4 #include <cstdio>5 …

微信支付现金红包接口(转)

微信支付现金红包接口正式开放&#xff0c;只需开通微信支付&#xff0c;即可接入现金红包。通过现金红包接口&#xff0c;公众号开发者可以策划相关运营活动&#xff0c;向用户发放微信支付现金红包&#xff0c;更好的达到品牌推广及回馈用户的效果。具体能力如下&#xff1a;…

The return types for the following stored procedures could not be detected

1、使用dbml映射数据库&#xff0c;添加存储过程到dbml文件时报错。 2、原因&#xff1a;存储过程中使用了临时表 3、解决方案 3.1 通过自定义表值变量实现 Ex: DECLARE TempTable TABLE ( AttributeID INT, Value NVARCHAR(200) ) INSERT INTO TempTable Select * from Attrib…

webstock php,workerman_connection

workerman_connection 测试WebStock 功能Description整理PHP 实现webstock 功能的相关流程。感谢workerman 开发作者提供开源组件。安装 composer# curl -sS https://getcomposer.org/installer | php如果安装 composer 提示PHP 版本不够按照如下处理&#xff0c;否则跳过。提示…