如何实现java程序播放音乐文件(以wav文件为例)
Java Sound API是javaSE平台提供底层的(low-level)处理声音接口,可以实现音频文件的播放。
根据这点我们可以尝试写一个类播放音乐:
关键:

  • File
  • AudioInputStream
  • AudioSystem
  • AudioFormat
  • SourceDataLine

思路:
1、读取到磁盘下的音乐文件:
我的放在D盘的根目录下:

2、读取文件并写出(播放)。

具体步骤与代码:

package swx.music.play;import java.io.File;
import java.io.IOException;import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.SourceDataLine;
import javax.sound.sampled.UnsupportedAudioFileException;/*** 如何实现播放音频文件(.wav文件)* * * @author 10570**/public class MpDemo {public static void main(String[] args) throws Exception, Exception {//1 获取你要播放的音乐文件File file = new File("D:\\河图.wav");//2、定义一个AudioInputStream用于接收输入的音频数据AudioInputStream am;//3、使用AudioSystem来获取音频的音频输入流(处理(抛出)异常)am = AudioSystem.getAudioInputStream(file);//4、使用AudioFormat来获取AudioInputStream的格式AudioFormat af = am.getFormat();//5、一个源数据行SourceDataLine sd ;//6、获取受数据行支持的音频格式DataLine.info//DataLine.Info dl = new DataLine.Info(SourceDataLine.class, af);//7、获取与上面类型相匹配的行 写到源数据行里 二选一sd = AudioSystem.getSourceDataLine(af);//便捷写法//sd = (SourceDataLine) AudioSystem.getLine(dl);//8、打开具有指定格式的行,这样可以使行获得资源并进行操作sd.open();//9、允许某个数据行执行数据i/osd.start();//10、写数据int sumByteRead = 0; //读取的总字节数byte [] b = new byte[320];//设置字节数组大小//11、从音频流读取指定的最大数量的数据字节,并将其放入给定的字节数组中。while (sumByteRead != -1) {//-1代表没有 不等于-1时就无限读取sumByteRead = am.read(b, 0, b.length);//12、读取哪个数组if(sumByteRead >= 0 ) {//13、读取了之后将数据写入混频器,开始播放sd.write(b, 0, b.length);}}//关闭sd.drain();sd.close();}
}

总结步骤:
1 获取你要播放的音乐文件
2、定义一个AudioInputStream用于接收输入的音频数据
3、使用AudioSystem来获取音频的音频输入流(处理(抛出)异常)
4、使用AudioFormat来获取AudioInputStream的格式
5、创建一个源数据行
6、获取受数据行支持的音频格式 DataLine.info 如果采用.getSourceDataLine()方法可以省略)
7、获取与上面类型相匹配的行 写到源数据行里 二选一
8、打开具有指定格式的行,这样可以使行获得资源并进行操作
9、允许某个数据行执行数据i/o
10、写数据
11、从音频流读取指定的最大数量的数据字节,并将其放入给定的字节数组中。
12、读取哪个数组
13、读取了之后将数据写入混频器,开始播放

以上,就可以实现单曲音乐文件后台播放,当然这只是最简单的播放,以后会研究更多以实现更多功能。

如何在java中简单实现音乐播放相关推荐

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

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

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

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

  3. html5中加入音乐怎么弄,如何在H5页面上添加音乐播放

    在制作网页的时候,经常会遇到一些带音乐播放的场景,作品的右上角有一个音频按钮,会播放音乐,点击切换播放和暂停.下面就讲一讲如何在h5网页上添加音乐播放. 其实是很简单的,只需要简单几步就可以完成了 1 ...

  4. 深圳java培训:使用原生JS重构简单的音乐播放器

    深圳java培训:使用原生JS重构简单的音乐播放器 上次,我们使用Jquery开发了一款简单的音乐播放器(如下图), 后来学生希望能够用原生的JS重构一次, 那么,下面就来看看如何使用原生的JS重构吧 ...

  5. android 简单的音乐播放器实现播放模式的切换

    以前写过一篇简单的音乐播放器,但是这个播放器没有实现播放模式的切换,在项目中要实现两个播放模式,循环播放和随机播放,经过这两天的努力搞定了,界面比较粗糙.可以先看一下前面的简单音乐播放器,详细的就不说 ...

  6. Android之简单本地音乐播放器

    平台:Android studio APK:http://fir.im/apps/56ea5187e75e2d69af000042 本地的音乐播放器,主要功能就是可以播放音乐,能够读取本地的音乐,并显 ...

  7. 一个基于Android开发的简单的音乐播放器

    一个基于Android开发的简单的音乐播放器 记得当时老师让我们写因为播放器时,脑子一头雾水,网上杂七杂八的资料也很少有用,因此索性就自己写一篇,希望对有缘人有用. 因为有好多人问我要源码,所以附上g ...

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

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

  9. Android Studio实现简单的音乐播放(播放、暂停、停止、上一首、下一首)

    Android Studio实现简单的音乐播放(播放.暂停.停止.上一首.下一首) 简要介绍 采用Service组件实现后台播放,BroadcastReceiver实现消息传递.BroadcastRe ...

最新文章

  1. HashSet中的add()方法( 四 )(详尽版)
  2. PyTorch 1.6正式发布!新增自动混合精度训练、Windows版开发维护权移交微软
  3. 为什么掌握 Linux 对程序员这么重要
  4. Windows下编程需要看哪些书
  5. 0/1背包问题-----回溯法求解
  6. 微软发布Azure Functions、Service Fabric和IoT Starter Kits新服务
  7. C++学习笔记章节中 面向对象详解
  8. QuickFlow教程(14)—ExecuteCode using QuickFlowDesigner
  9. 美国在线教育的启示:教育领域正在革命
  10. 进销存ERP源码 进销存APP源码 带小程序ERP源码
  11. 这个录屏神器好用哭了!
  12. HI3519移植samba服务器
  13. php实现图片去除水印,PHP实现水印图片
  14. veeam安装和部署_Veeam Backup Replication 8 安装配置
  15. 微信小说小程序源码-附带采集
  16. 非系统APK很多权限受限制,如何让APK成为系统APK
  17. 根据子节点递归查询所有父节点
  18. system x 常用工具链接—cuixf@DC
  19. 英国脱欧 欧盟授权代表_英国脱欧可能影响您的虚拟主机的3种方式
  20. WINCE 车机系统介绍

热门文章

  1. UML预约挂号系统建模(团队作业)
  2. TPS,MIS,DSS,ESS,临时表
  3. 大数据与BI的联系与区别
  4. 自定义函数 | R语言偏相关分析及绘图
  5. 考研初试考java的学校,2021考研初试科目:这些学校改成统考408!
  6. PyTorch源码解读之torchvision.models
  7. 作为SLAM中最常用的闭环检测方法,视觉词袋模型技术详解来了
  8. LaTex 文章正文footnote和表格的footnote合并计数
  9. EOS代码架构及分析(二)
  10. FPGA组合逻辑训练-三八译码器