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

点击这里下载第三方库文件

如果找不到下载的地方,可以在我们百度网盘中下载:密码:avpy

当然,如果你觉得在百度网盘中下载太恶心,可以在这里下载 密码: pgb9bo

JavaFX播放MP3,这种方法不需要下载第三方库,比较方便,但是不能直接用在Java Project里面,能直接用在JavaFX Project里面。

这个包里面,有几个重要的类,它们的层次关系是这样的Media->MediaPlayer->MediaView

Meida类用来封装媒体数据

MediaPlayer类用来控制媒体文件的各种行为

MediaView类用来显示媒体,但是我介绍的是播放MP3,所以文中没有这个类。

package com.game.sound;

import java.io.File;
import java.net.URL;

import javafx.application.Application;
import javafx.scene.media.*;
import javafx.stage.Stage;

/*
目前支持的编码格式:

音频:

MP3;

包含非压缩PCM的AIFF;

包含非压缩PCM的WAV;

使用AAC音频的MPEG-4;(MP4)

使用JavaFX播放MP3文件,需要导入javafx.scene.media包
*/
class Sound extends Object {

private Media media;/* 相当于媒体播放器*/
private MediaPlayer mediaPlayer;/* 相当于媒体控制器*//*播放音乐*/
public void play() {mediaPlayer.play(); /* JavaFX提供的MediaPlayer有播放方法,直接调用即可 */
}/*暂停播放*/
public void pause() {mediaPlayer.pause();/* JavaFX提供的MediaPlayer有暂停方法,直接调用即可*/
}/*停止播放*/
public void stop() {mediaPlayer.stop();/* JavaFX提供的MediaPlayer有停止播放方法,直接调用即可*/
}/*循环播放*/
public void loop() {setPlayCount(MediaPlayer.INDEFINITE);/* this的方法*/play();/* this的方法*/
}/*获取现在音乐播放到哪里了@return 事件(单位秒)*/
public double getNewTime() {return mediaPlayer.getCurrentTime().toSeconds();
}/*设置音乐的声音大小0-1@param v音量*/
public void setVolume(double v) {mediaPlayer.setVolume(v);
}/*@param count设置媒体文件循环播放的次数*/
public void setPlayCount(int count) {mediaPlayer.setCycleCount(count);
}/*释放媒体文件占用的空间*/
public void close() {mediaPlayer.dispose(); /* 不是用Media类来释放内存,要用MediaPlayer控制类来释放内存*/System.gc(); /* 通知JVM内存回收,调用了dispose方法内存并不会马上被回收,会被标记成垃圾,等待下一次垃圾回收的执行,这里我们手动调用*/
}/*@param URL媒体文件目录,本地文件也要用URL(String)路径*/
public Sound(String URL, boolean isAutoPlay) {this.media = new Media(URL);this.mediaPlayer = new MediaPlayer(media);mediaPlayer.setAutoPlay(isAutoPlay);
}/*@param URL虽然直接传入的事URL,但是是不能直接使用,要转成String类型的URL*/
public Sound(URL URL, boolean isAutoPlay) {this(URL.toString(), isAutoPlay);
}/*@param file最终转换成URL(String)路径*/
public Sound(File file, boolean isAutoPlay) {this(file.toURI().toString(), isAutoPlay);
}

}

public class Main extends Application {

private Sound sound;/* 注意,我这里是为了防止被JVM的垃圾回收给回收掉 */@Override
public void start(Stage primaryStage) throws Exception {/* 直接复制下来没效果可能是因为连接地址失效了 */sound = new Sound("http://sc1.111ttt.cn/2017/1/04/26/297262113196.mp3", false);sound.loop();/*循环播放*/
}public static void main(String[] args) {launch(args);/* 初始化 */
}

}
使用第三方库播放MP3格式的音频

package com.game.sound;

import java.util.logging.;
import javazoom.jl.decoder.
;
import javazoom.jl.player.*;

public class MySound extends Thread {

private Player player;
private String musicName;/*加载音乐*/
public MySound(String musicName) {this.musicName = musicName;
}/*播放音乐*/
public void play() {try {/*我这里的这一种写法要求音频文件要和这个类在同一个包里面*/new Player(getClass().getResourceAsStream(musicName)).play();} catch (JavaLayerException ex) {Logger.getLogger(MySound.class.getName()).log(Level.SEVERE, null, ex);}
}/*循环播放音乐*/
public void loop() {this.start();
}@Override
public void run() {while (true) {try {new Player(getClass().getResourceAsStream(musicName)).play();} catch (JavaLayerException ex) {Logger.getLogger(MySound.class.getName()).log(Level.SEVERE, null, ex);}}
}

}


作者:lemon
来源:レモンガード
原文:https://www.remonkado.com/note/public/detail/ac10fcd76ba61cc0816ba71efd190379.html

Java如何播放MP3格式音频文件,以及如何循环播放音频?相关推荐

  1. vs用c语言mci播放失败,C#使用mci播放MP3格式音乐文件解决方案

    C#使用mci播放MP3格式音乐文件 [DllImport("winmm.dll")] public static extern int mciSendString(string  ...

  2. Java实现剪切MP3格式的文件_总结java中文件拷贝剪切的5种方式-JAVA IO基础总结第五篇...

    本文是Java IO总结系列篇的第5篇,前篇的访问地址如下: 很多朋友在看我的<java IO总结系列>之前觉得创建文件.文件夹删除文件这些基础操作真的是太简单了.但看了我的文章之后,有小 ...

  3. java 播放amr_amr格式转mp3和直接播放amr格式的文件-sunziren

    原创文章,转载请注明出处! 前言: amr作为一种高压缩比的音频格式,受到很多客户的青睐.本文主要涉及两部分的内容,一是amr如何转为mp3格式,二是如何直接播放amr格式的文件. 1. 如何使用Ja ...

  4. java中支持mp3格式_可以播放mp3格式文件的机器,都遵守了什么协议,才能让mp3格式的文件可以:“一处保存,到处播放?...

    //题主修改了问题,第一段的立场就有点奇怪了 >_<.> //不是mp3格式去适应各种机器的,是各种机器按照mp3规范通过硬件或软件去解码mp3格式的文件,然后经过DAC(数字-&g ...

  5. 使用Python播放mp3格式音频

    环境 Pycharm,Python3.x,pydub库(带介绍),ffmpeg(带介绍),simpleaudio库(带介绍) 探索之路(可略过) 一开始选的是用PyAudio,安装还要借用wheel, ...

  6. mp3格式怎么弄?分享三个音频文件格式转换的方法

    不知道小伙伴们有没有遇到过这样的情况,在网上下载一首歌下来,正想打开,结果却发现我们的播放器无法播放.你们知道这是为什么嘛,其实我们的音频文件是有很多不同的格式,其中就有些比较少见的格式,我们的音频播 ...

  7. java 视频边下边播,android 边下边播放mp3完美实现(有缓冲和播放进度效果)

    [实例简介] android 边下边播放mp3完美实现,有缓冲和播放进度效果. [实例截图] [核心代码] MusicPlayer ├── __MACOSX │   └── MusicPlayer │ ...

  8. UE4大数据可视化教程(10)——设置背景音乐和播放MP3格式音乐

    目录 设置背景音乐 播放MP3格式音乐 设置背景音乐 将wav格式音乐拖入UE4,然后新建一个Sound_Cue,拖入场景 打开Sound_Cue,连接wav格式音乐,勾上循环

  9. 教你如何在线播放FLV格式的文件

    1.首先先找一个swf格式的文件转换为flv格式的文件,我使用的是Ultra Flash Video FLV Converter 软件下载地址:Ultra Flash Video FLV Conver ...

最新文章

  1. python操作windows库_python大佬养成计划----win下对数据库的操作
  2. C# 用正则表达式替换字符串中所有特殊字符
  3. mysqlbinlog: unknown variable 'default-character-set=gbk'错误
  4. Kafka配置5--Windows下配置Kafka的集群+SASL+SSL
  5. Keil安装使用基础篇
  6. 计算机网络课设之TCP通讯录
  7. web前端培训Node.js和JavaScript的关系
  8. 飞桨paddlepaddle论文复现——BigGAN论文翻译解读
  9. AD637 有效值检测
  10. 如何进行“基于示例”的搜索
  11. 新塘单片机烧写器_新唐单片机烧录工具-Nuvoton ICP Programming Tool下载v3.00.6909官方免费版-ucbug下载站...
  12. EasyUI使用基础教程
  13. 高数下-空间几何(一)-向量
  14. ubuntu下exiftool安装
  15. JavaSE语言基础
  16. 痛苦的事, 伤心的事, 一生只需要一次, 别折腾, 别忘痛- 人生, 软件, 所有人皆如是!...
  17. 软件定义网络(PART 3)
  18. 黑解(ICCID)证书备份
  19. 擎天架构加持,华为云Stack打算在混合云市场怎么打?
  20. 【论文笔记】A Spatial Cognitive Model that Integrates the Effects of Endogenous and Exogenous Information

热门文章

  1. 微博php学历限制,微博输入字数限制功能
  2. TortoiseGit的安装、配置
  3. 被尘封的故事技能点bug_梦幻西游:官方都不承认存在的BUG,可以同时完成两个奇谭任务...
  4. MyBatis Plus整合p6spy控制台打印美化格式的sql语句
  5. 智能手机降价杀:你方唱罢我登台 搞死一个少一个
  6. php判断or qe,高分辨液质联用分析仪-QE
  7. 想找工作,这一篇15w字数+的文章帮你解决
  8. ubuntu18.04的Android环境配置
  9. 码科速送同城跑腿小程序v3.0.62+前端+插件
  10. 技巧分享:我的VM黑群晖安装及独特网络访问方案