【Java播放音乐】利用AudioSystem实现音乐的播放、循环播放以及音量的调整

文章目录

  • 【Java播放音乐】利用AudioSystem实现音乐的播放、循环播放以及音量的调整
    • 步骤
    • 如何循环播放和设置音量

步骤

(1)利用File类读取到文件类
(2)利用AudioSystem的getAudioInputStream从file里面拿到音频流
(3)得到一个clip类
(4)clip类open音频流,最后进行播放

class Test{public static void main(String[] args) throws UnsupportedAudioFileException, IOException, LineUnavailableException{File file = new File("music/background.wav");AudioInputStream audioStream = AudioSystem.getAudioInputStream(file);Clip clip = AudioSystem.getClip();clip.open(audioStream);clip.start();}
}

当你试图执行上面的代码的时候,你会发现,没声音!
不是我在骗你,是因为主程序已经结束了,因此即使我们调用了相应的方法,方法也执行了但是没播放呢,主程序就结束了
怎么办呢?我们加个死循环让程序一直跑

class Test{public static void main(String[] args) throws UnsupportedAudioFileException, IOException, LineUnavailableException{File file = new File("music/background.wav");AudioInputStream audioStream = AudioSystem.getAudioInputStream(file);Clip clip = AudioSystem.getClip();clip.open(audioStream);clip.start();while(true){ }}
}

可以听到了吧?但是这样的方式并不是很好哦,实际中,一般还是选择一直可以跑的线程,放在那个里面run就好了(比如一些有GUI的程序啊)~或者可以用输入的方式使得程序一直进行:

class Test{public static void main(String[] args) throws UnsupportedAudioFileException, IOException, LineUnavailableException {Scanner scanner = new Scanner(System.in);while(true){File file = new File("music/background.wav");AudioInputStream audioStream = AudioSystem.getAudioInputStream(file);Clip clip = AudioSystem.getClip();clip.open(audioStream);clip.loop(clip.LOOP_CONTINUOUSLY);System.out.println("你想退出吗?想的话请输入Q");String response = scanner.next();if(response.equals("Q")){break;}}}
}

这样只有在输入Q的时候,音乐才会停止播放了~

如何循环播放和设置音量

循环播放

clip.loop(clip.LOOP_CONTINUOUSLY);

设置音量

    FloatControl volume = (FloatControl) clip.getControl(FloatControl.Type.MASTER_GAIN);double percent = 0.5;   // 这里调节你想要控制的音量的大小float dB = (float) (percent);volume.setValue(dB);

【Java播放音乐】利用AudioSystem实现音乐的播放、循环播放以及音量的调整相关推荐

  1. Java如何播放MP3格式音频文件,以及如何循环播放音频?

    首选,感谢你能在百忙之中阅读我的博客,在这里我告诉大家2中播放MP3格式音频的方法.第一种,使用自带的JavaFX技术来播放(现再最新的JDK版本中已被移除).第二种我们使用第三方库来进行播放. 点击 ...

  2. 视频弹窗播放html,利用jQuery实现在线视频弹出播放代码

    特效描述:利用jQuery实现 在线视频 弹出播放代码.利用jQuery实现在线视频弹出播放代码 代码结构 1. 引入CSS 2. 引入JS 3. HTML代码 视频一 2018-06-22 视频一 ...

  3. webview加载本地html_安卓webview html5 自动播放本地视频,网上视频,可以循环播放...

    我们做安卓开发时,webview中发现html5 视频的autoplay根本没实现,查看了下android 源码HTMLVideoElement.cpp也未见相应处理,网上有资料显示,这可能关乎UI线 ...

  4. Flash:关键帧中调用自建的音乐类,进行播放、关闭、循环音乐+按键播放或者关闭外部音乐+循环播放背景音乐+播放按钮音乐+停止+加载外部音乐文件+AS2播放背景音乐

    目录 一.关键帧里面:调用自建的音乐类, 循环播放外部音乐.进行播放.关闭.循环音乐 1.代码:自建音乐类 2.关键帧中创建.播放.暂停背景音乐+按钮音乐 3.文件布置 二.关键帧中:按键播放或者关闭 ...

  5. AVPlayer 无间隔循环播放

    AVPlayer 可以实现音频或者视频文件的在线播放和本地播放.最近做了一个单曲循环播放的功能.一开始选择了下面这个方法: - (void)replaceCurrentItemWithPlayerIt ...

  6. gif循环播放_防止动画GIF循环播放

    gif循环播放 We all know animated GIFs put the "fun" in "functional." I've recently w ...

  7. 播放实现Android实现图片循环播放

    本篇文章是一篇关于播放实现的帖子 很多时候,我们需要展示在客户端展示图片,而且是动态显示,即不停地自行切换图片.下面我们来看一下具体的实现方法.首先,我们需要在XML... 很多时候,我们需要展示在客 ...

  8. 推荐一些可以将QQ截取的gif图片修改为循环播放的软件

    QQ截取的gif图片在网页上只能播放一次~~我想把它变成循环播放的.请高手们推荐!PS:我不要photoshop的~~ ======================================== ...

  9. PPT2010中轻松实现PPT自动循环播放

    在产品展销会.人才招聘会时,我们可能会需要PPT自动循环播放.在PPT2010中可以很轻松地实现自动循环播放效果. 设置放映法 在PPT 2010中,通过排练计时已经可以让PPT自动播放,但只能自动播 ...

最新文章

  1. 网络负载均衡相关技术-七层负载
  2. 2019-2021年中国AI芯片市场预测与展望数据
  3. linux下删除乱码文件
  4. 6、Hive的特殊分隔符处理
  5. html与css知识总结,html和css知识总结(示例代码)
  6. OpenGL multiple lights多光源的实例
  7. 专注jQurey的博客【2012年度IT博客大赛分类推荐】
  8. 豆瓣读书评分 8.7 以上! 这 40 本 Python 畅销书包邮送
  9. ActiveMQ Cannot send, channel has already failed: tcp:127.0.0.1:8161
  10. 2017百度之星资格赛 1003 度度熊与邪恶大魔王
  11. Target “xxx” links to target “Boost::filesystem“ but the target was not found
  12. javascript对象数组的二维比较和插入
  13. ACM学习历程—HDU5396 Expression(递推 计数)
  14. 华为悦盒EC6109u线刷救砖文件fastboot.bin bootargs.bin recovery
  15. 成功安装ML并驱动显卡(gtx460)声卡(alc892)之经验谈
  16. 用python写模拟鼠标脚本
  17. java如何设置控制台打印的字体颜色、背景、字体样式(idea设置打印字体样式)工具类 - 附插件方式
  18. 【vue】【开源】vue开源电商项目hello-mall嗨喽商城
  19. java中compliant是什么意思,compliant是什么意思中文翻译
  20. 6个评委对5选手打分,去掉最高分和最低分,然后求出平均分就是他们的成绩。Sort函数给评分排序,在头文件algorithm中

热门文章

  1. 超声波声音和速度关系对测试距离的影响
  2. 空间多点离散点拟合直线python和halcon
  3. C++基础入门(上):命名空间、输入输出、缺省参数
  4. 三极管开关电路工作原理解析及三极管的放大区、饱和区、截止区
  5. FPGA/IC领域术语表
  6. FPGA功耗估计(二)
  7. C++ atexit
  8. 将选择的图片保存到临时文件夹
  9. 【教学类-33-02】20230518食物加加加2.0版(3、4、5、10、15、20以内数字加法,随机抽数)
  10. Windows学习总结(25)—— Windows 11 cmd 命令大全