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,一经查实,立即删除!

相关文章

有1~5000一组乱序数列,请使用伪代码对该数进行排列

先把1-5000组成一个数组 冒泡排序法 $arrarray(1,2,3,4,5,6,7,8,9.....5000); $totalcount($arr); For($i0;$i<$total;$i){ For($j0;$j<$total-1;$j){ If($arr[$j]>$arr[$j1]){ $tmp$arr[$i]; $arr[$j]$arr[$j1]; $arr[$j1]$tmp; } } } 快速排序法 $arrarray(1,2,3,4,…

java 类型转换方法_java数据类型转换的常见方法

public class Testfun {public static void main(String[] args) {// (一)跨Number父类的类型转换// 1、str转int > Integer.parseInt(s1)String s1 "19";int i2 Integer.parseInt(s1);// 数字str转化为对标的intSystem.out.println("i2" (i2));// 2…

json to java 在线_Json转Java对象 (全网最简版)

Json2Java(全网最简版)json字符串转Java对象,生成对应文件描述&特点简易的Json转Java工具,满足基本日常使用(特殊需求可自行增添,代码就一页)在网上找了好些个这类工具,不是只暴露iead插件就是复杂&没文档,于是自己写了个全网最简版Json2Javaonly one file用法public c…

Material design 色彩

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

java logging api_Java Logging API - Tutorial

1.2. 创建一个logger包 java.util.logging提供了日志的功能&#xff0c;可以使用类似于下面的代码来创建一个logger&#xff1a;import java.util.logging.Logger;private final static Logger LOGGER Logger.getLogger(MyClass.class .getName());1.3. LevelLog的等级反映了问…

内存查看工具RAMMAP说明

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

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

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

成都优步uber司机第四组奖励政策

万能的优步成都团队放出了优步司机第四组&#xff0c;一二三组奖励已经骤降&#xff0c;在月末放出第四组车主档&#xff0c;这是要让一切归于平静的节奏么&#xff01;&#xff01;&#xff01; 滴滴快车单单2.5倍&#xff0c;注册地址&#xff1a;http://www.udache.com/如何…

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

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

BZOJ 1008 [HNOI2008]越狱

1008: [HNOI2008]越狱 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 5166 Solved: 2242[Submit][Status][Discuss]Description 监狱有连续编号为1...N的N个房间&#xff0c;每个房间关押一个犯人&#xff0c;有M种宗教&#xff0c;每个犯人可能信仰其中一种。如果相邻房间…

android mysql开发工具_Android开发工具--adb的使用

adb(Android Debug Bridge)是Android提供的一个通用的调试工具&#xff0c;借助这个工具&#xff0c;我们可以管理设备或手机模拟器的状态。还可以进行以下的操作&#xff1a;1、快速更新设备或手机模拟器中的代码&#xff0c;如应用或Android系统升级&#xff1b;2、在设备上运…

java headless_使用Chrome Headless 快速实现java版数据的抓取

Java: cdp4j - Java library for CDP,使用这个类库实现。maven引入&#xff1a;io.webfoldercdp4j1.1.0官方例子&#xff1a;import io.webfolder.cdp.Launcher;import io.webfolder.cdp.session.Session;import io.webfolder.cdp.session.SessionFactory;public class HelloWo…

闪回数据库

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. 闪回数据库特性提供了一种…

Ruby on Rails Tutorial 第六章 用户模型

1、用户模型&#xff08;1&#xff09;数据库迁移Rails默认使用关系数据库存储数据&#xff0c;数据库中的表有数据行组成&#xff0c;每一行都有相应的列&#xff0c;对应数据属性。把列名命名为相应的名字后&#xff0c;ActiveRecord会自动把他们识别为用户对象的属性。 $ ra…

java dcl 失效解决_DCL失效原因和解决方案

Java内存模型 在了解Java的同步秘密之前&#xff0c;先来看看JMM(Java Memory Model)。Java被设计为跨平台的语言&#xff0c;在内存管理上&#xff0c;显然也要有一个统一的模型。而且Java语言最大的特点就是废除了指针&#xff0c;把程序员从痛苦中解脱出来&#xff0c;不…

李宁-2015年7月13日-个人文档

姓名 李宁 日期 2015年7月13日 主要工作及心得 由于我负责服务器端的编写工作&#xff0c;而各部分的客户端的操作都要与服务器端通信&#xff0c;所以在今天的调试中&#xff0c;我贯穿于各部分模块的调试和检测&#xff0c;主要负责在出现问题…

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

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

无忧开通了博客园博客主页

无忧开通了博客园博客主页&#xff0c;今后在这里安家了。 分享一点工作经验和学习心得&#xff0c;有事没事常来看看。另一个独立博客www.wuyouseo.com 转载于:https://www.cnblogs.com/wuyoublog/p/4646481.html

pythonif语句的多分支使用_Python多分支if语句的使用

注意&#xff1a;if语句代码是从上往下执行的&#xff0c;当执行到满足条件的语句时&#xff0c;代码会停止往下执行注意&#xff1a;if语句后面要加上冒号score int (input("score&#xff1a;"))if score > 90:print("A")elif score > 80:print(&…

Visual Studio下Qt调用IDL

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