说明:

主要是用了Java sound(刚开始我也不知道,百度什么的,查查的就明白了,或者直接参考jdk的API文档),我没有打印所有的信息,想要什么参考官方API文档自己加,在此附上官方的demo(可直接下载):点击打开链接,此程序可解析WAV和MP3格式的音频文件,如果你只需要解析MP3文件的头部信息没必要用这个(网上一大堆)。此程序也可以自己搞好页面做播放器使用,不比比了,直接上代码。

代码:

public class ReadSoundMP3{public static void main(String[] args) throws Exception{//假设音量条100,音量默认为80double value = 80 / 100.0;AudioInputStream stream = AudioSystem.getAudioInputStream(new File("E:\\地尽头.mp3"));AudioFormat format = stream.getFormat();System.out.println("具有此格式的声音每秒播放或录制的样本数:"+ format.getSampleRate());System.out.println("每个具有此格式的声音帧包含的字节数:"+ format.getFrameSize());if (format.getEncoding() != AudioFormat.Encoding.PCM_SIGNED) {format = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED,format.getSampleRate(), 16, format.getChannels(),format.getChannels() * 2, format.getSampleRate(), false);stream = AudioSystem.getAudioInputStream(format, stream);}DataLine.Info info = new DataLine.Info(SourceDataLine.class, stream.getFormat());SourceDataLine sourceDataLine = (SourceDataLine) AudioSystem.getLine(info);sourceDataLine.open(stream.getFormat(), sourceDataLine.getBufferSize());sourceDataLine.start();List<Control> cons = new ArrayList<>();Control [] ss = sourceDataLine.getControls();Control t = null;for (int i=0;i<ss.length;i++){t = ss[i];cons.add(t);System.out.println("控件类型:"+t.getType());}FloatControl adin = (FloatControl)sourceDataLine.getControl(FloatControl.Type.MASTER_GAIN);System.out.println("当前值:"+ adin.getValue());System.out.println("分辨率或粒度:"+ adin.getPrecision());System.out.println("中点值的标签:"+ adin.getMidLabel());System.out.println("最大值得标签:"+ adin.getMaxLabel());System.out.println("最大值:"+ adin.getMaximum());System.out.println("最小值得标签:"+ adin.getMinLabel());System.out.println("最小值:"+ adin.getMinimum());System.out.println("单位:"+ adin.getUnits());System.out.println("音量等级:"+ sourceDataLine.getLevel());float dB = (float) (Math.log(value)/Math.log(10.0)*20.0);System.out.println("计算后:"+ dB);//设置音量大小adin.setValue(dB);int numRead = 0;byte[] buf = new byte[sourceDataLine.getBufferSize()];System.out.println("字节流:"+ buf.toString());System.out.println("字节流长度:"+ buf.length);while ((numRead = stream.read(buf, 0, buf.length)) >= 0) {int offset = 0;while (offset < numRead) {offset += sourceDataLine.write(buf, offset, numRead - offset);}System.out.println("音频数据中的当前位置(样本帧/微秒):"+sourceDataLine.getFramePosition() + " " + sourceDataLine.getMicrosecondPosition());}sourceDataLine.drain();sourceDataLine.stop();sourceDataLine.close();stream.close();}
}


maven中jar包引入:

<dependency><groupId>com.googlecode.soundlibs</groupId><artifactId>mp3spi</artifactId><version>1.9.5-1</version>
</dependency>
<dependency><groupId>javazoom</groupId><artifactId>jlayer</artifactId><version>1.0.1</version>
</dependency>
<dependency><groupId>com.googlecode.soundlibs</groupId><artifactId>tritonus-share</artifactId><version>0.3.7-2</version>
</dependency>

控制台打印:


java解析音频文件/音乐播放器相关推荐

  1. Java图形用户界面设计音乐播放器

    Java图形用户界面设计音乐播放器 设计思路 音乐播放器的基础是可以播放音乐,所以要有一个实现播放音乐功能的类audioplay,图形界面就是通过动作调用audioplay里面的函数.关于实现播放器图 ...

  2. java音乐播放器所需jar包,这个用Java写的开源音乐播放器,我粉了

    原标题:这个用Java写的开源音乐播放器,我粉了 开源最前线(ID:OpenSourceTop) 随着版权意识的增强,如今想听几首歌,都得下载好几个音乐软件.这也就算了,大部分音乐还都是付费的,安装这 ...

  3. Java和vue实现音乐播放器_躁!DJ 风格 Java 桌面音乐播放器

    本文适合有 Java 基础知识的人群,跟着本文可学习和运行 Java 版桌面 DJ 音乐播放器. 本文作者:HelloGitHub-秦人 HelloGitHub 推出的<讲解开源项目>系列 ...

  4. JAVA毕业设计Vue.js音乐播放器设计与实现计算机源码+lw文档+系统+调试部署+数据库

    JAVA毕业设计Vue.js音乐播放器设计与实现计算机源码+lw文档+系统+调试部署+数据库 JAVA毕业设计Vue.js音乐播放器设计与实现计算机源码+lw文档+系统+调试部署+数据库 本源码技术栈 ...

  5. Java课程设计报告—音乐播放器

    目录 Java课程设计报告 1.设计内容及要求 2.需求分析 3.总体设计 4.主要功能设计流程 5.系统实现及测试 6.总结与说明 Java课程设计报告 题目:java音乐播放器 姓    名    ...

  6. 【Java】简单的音乐播放器

    应用名称:Java简单的音乐播放器 用到的知识:Java GUI编程,线程,IO 开发环境:win8+eclipse+jdk1.8 功能说明:可以选择内置的音乐文件播放,循环播放,停止.PS:这个播放 ...

  7. 这个用Java写的开源音乐播放器,我粉了

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:我在实际工作中用的最多的 git 命令个人原创+1博客:点击前往,查看更多 随着版权意识的增强,如今,想听几首歌 ...

  8. java制作mp3_利用java制作简单的音乐播放器

    本文主要是用到java中的swing技术,以及JMFjar中的API,为大家分享了java音乐播放器的具体实现代码,供大家参考,具体内容如下 备注:需要用JDK1.8才能播放音乐MP3 package ...

  9. java实现音频文件的播放

    实现思路 1.首先获取音频文件的地址,然后通过IO流读取音频文件,加缓冲区,实现Player类的对象. 2.Player类主要用于播放器的初始化,以及通过它来实现一些音视频文件的播放,这个类需要手动去 ...

最新文章

  1. C# Graphic 绘制圆、三角形、椭圆、图片
  2. 发改委最新《产业结构调整目录》公布!数据中心列入鼓励产业条目
  3. C语言EOF是什么?
  4. 06_Android中ArrayAdapter的使用
  5. 必备知识:大数据处理应遵循的原则
  6. GeForce 硬件 技术 VXGI
  7. php中array_flip数组翻转
  8. 工控安全| 西门子S7-300攻击分析
  9. JAVA如何校验txt的文本编码格式
  10. 关注公众号回复图片php,公众号被关注回复可以回复文字加图片消息吗? | 微信公众号指南...
  11. 搜狗推送代码之搜狗百万蜘蛛实现
  12. 第46讲 Android Camera2 API AWB自动白平衡
  13. STM32共阳数码管编程分享
  14. nowcoder20619 禁书目录
  15. oracle存储过程报错:ORA-06550: wrong number or types of arguments in call to
  16. 计算机专业证书难度,计算机专业应该考这些证书!
  17. 一款视频剪辑软件--爱剪辑
  18. [股吧]自己写的 东方财富网股吧 顶贴机 截图 自动拨号版 C# vs2005版
  19. 用Python制作简易播放器(电子钢琴) mac系统
  20. 阿里巴巴2021实习生笔试题20210608

热门文章

  1. maven 打包war包时忽略一些配置文件
  2. SZTUOJ 1017.火柴人
  3. 商家巧用小程序推动新零售运营模式发展
  4. PW4555芯片,完全集成的高输入电压单电池锂离子电池充电器,适用于手机
  5. python 编程 培训
  6. matlab 现代功率谱估计,matlab经典、现代功率谱估计
  7. iOS富文本组件的实现—DTCoreText源码解析 数据篇
  8. MicroStrategy CEO:为了买入21454个BTC,我们进行了78388笔交易
  9. Android硬件开发、机顶盒开发工具小结
  10. 实现PPT在线预览,PPT转图片方案