Java播放MP3播放音频

下面我演示用jdk自带包、框架等分别展示播放mp3、等music

一、使用javafx包

AudioClip

注意jdk11以上剥离了javafx

    public static void main(String[] args) throws Exception {
File file = new File("C:\\Users\\Administrator\\Desktop\\塞壬唱片-MSR,BaoUner - 生命流.mp3");
URI uri = file.toURI();
System.out.println(uri);
// file:/C:/Users/Administrator/Desktop/塞壬唱片-MSR,BaoUner%20-%20生命流.mp3
AudioClip audioClip = new AudioClip(uri.toString());
audioClip.setCycleCount(99);// 播放次数
audioClip.play();
// 延迟,不关闭main用于播放音乐
Thread.sleep(10000);
}
}

Media

使用javafx加入场景模式

import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.stage.Stage; import java.io.File;
import java.net.URI; /**
* @author lingkang
* @date 2021/12/11
*/
public class MyMusic01 extends Application { @Override
public void start(Stage primaryStage) throws Exception {
File file = new File("C:\\Users\\Administrator\\Desktop\\塞壬唱片-MSR,BaoUner - 生命流.mp3");
URI uri = file.toURI();
System.out.println(uri); Media media = new Media(uri.toString());
MediaPlayer mediaPlayer = new MediaPlayer(media);
mediaPlayer.setAutoPlay(true);
MediaView mediaView = new MediaView(mediaPlayer); // 可以使用按钮控制
//mediaPlayer.play();
primaryStage.setScene(new Scene(new AnchorPane(mediaView)));
primaryStage.show();
} public static void main(String[] args) throws Exception {
launch(args);
}
}

二、java自带包

AudioClip

使用java自带AudioClip 只能播放wav格式文件,其他格式无法播放

import java.applet.Applet;
import java.applet.AudioClip;
import java.io.File;
import java.net.URI; /**
* @author lingkang
* @date 2021/12/11
*/
public class MyMusic02 {
public static void main(String[] args) throws Exception {
// 只支持 wav
File file = new File("C:\\Users\\Administrator\\Desktop\\aoUner_-_231148159229145189230181129.wav");
URI uri = file.toURI();
System.out.println(uri);
// AudioClip 只能播放 wav 格式的music
AudioClip audioClip = Applet.newAudioClip(uri.toURL());
audioClip.play();// 独立线程播放
//循环播放
audioClip.loop();
}
}

Clip

使用Clip,也是只支持wav

import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import java.io.File;
import java.net.URI; /**
* @author lingkang
* @date 2021/12/11
*/
public class MyMusic03 {
public static void main(String[] args) throws Exception {
//只能播放 wav 格式的music
File file = new File("C:\\Users\\Administrator\\Desktop\\aoUner_-_231148159229145189230181129.wav");
URI uri = file.toURI();
System.out.println(uri);
AudioInputStream audioIn = AudioSystem.getAudioInputStream(file);
Clip clip = AudioSystem.getClip();
clip.open(audioIn);
clip.start();
Thread.sleep(15000);
}
}

三、使用框架

jaco-mp3-player

2012年的框架
下载地址 http://jacomp3player.sourceforge.net/
只支持map3

import jaco.mp3.player.MP3Player;

import java.io.File;
import java.net.URI; /**
* @author lingkang
* @date 2021/12/11
*/
public class MyMusic04 {
public static void main(String[] args) throws Exception {
File file = new File("C:\\Users\\Administrator\\Desktop\\塞壬唱片-MSR,BaoUner - 生命流.mp3");
//File file = new File("C:\\Users\\Administrator\\Desktop\\aoUner_-_231148159229145189230181129.wav");
URI uri = file.toURI();
System.out.println(uri);
// 只支持map3
new MP3Player(file).play();
Thread.sleep(15000);
}
}

jlayer

最后更新2012年

<!-- https://mvnrepository.com/artifact/javazoom/jlayer -->
<dependency>
<groupId>javazoom</groupId>
<artifactId>jlayer</artifactId>
<version>1.0.1</version>
</dependency>
import javazoom.jl.player.Player;

import java.io.File;
import java.io.FileInputStream;
import java.net.URI; /**
* @author lingkang
* @date 2021/12/11
*/
public class MyMusic05 {
public static void main(String[] args) throws Exception {
File file = new File("C:\\Users\\Administrator\\Desktop\\塞壬唱片-MSR,BaoUner - 生命流.mp3");
//File file = new File("C:\\Users\\Administrator\\Desktop\\aoUner_-_231148159229145189230181129.wav");
URI uri = file.toURI();
System.out.println(uri);
// 只支持mp3格式
Player player = new Player(new FileInputStream(file));
player.play();// 线程阻塞
System.out.println("Song is playing");
}
}

总结

推荐使用javafx包下的AudioClip

Java播放MP3播放音频的更多相关文章

  1. java获取Mp3播放时长

    最近有一个用java获取mp3播放时长的需求,有两种,一种本地文件,一种网络文件,其中获取网络mp3播放时间的方法找了挺久终于找到个能用的了. 第一种很简单,下载个jar包  jaudiotagger ...

  2. 你也可以用java的swing可以做出这么炫的mp3播放器_源码下载

    I had published the blog : 你用java的swing可以做出这么炫的mp3播放器吗? and to display some screenshots about this M ...

  3. 你用java的swing可以做出这么炫的mp3播放器吗?

    这个mp3播放器是基于java的swing编写的,我认为界面还是可以拿出来和大家看一看评一评. 先说说创作的初衷,由于前段时间工作不是很忙,与其闲着,还不如找一些东西来给自己捣腾捣腾,在 之前写的 j ...

  4. java实现播放mp3功能

    1.首先引入jlayer.jar <!-- https://mvnrepository.com/artifact/javazoom/jlayer --> <dependency> ...

  5. JAVA按顺序播放多个wav音频

    用Java按顺序播放多个音频部件,不是同时播放.代码如下: List<String> files = new ArrayList<String>(); files.add(&q ...

  6. CEF3 HTML5 audio标签为什么不能播放mp3格式的音频文件

    CEF3 HTML5 audio标签 为什么不能播放mp3格式的音频文件   原因略.   解决方法: 找一个最新版的chrome ,我用的是24版本.路径 C:\Documents and Sett ...

  7. Java使用Player播放mp3

    大家平时闲了都会听听歌,散散心,于是很多人就问,在Java里边如何播放歌曲呢,唉,别说,在Java里边还真能歌曲,下面我为大家揭晓. 我们都知道Java里边做什么都需要对应的jar包,首先贴上mave ...

  8. HTML5音频(自定义mp3播放器源码)

    audio对象 src兼容.ogg .wav .mp3 <audio controls src='data/imooc.wav'></audio> width autoplay ...

  9. Android开发手记(14) 使用MediaPlayer播放mp3

    1.获取MediaPlayer实例 (1)可以直接通过new或者create方式: 调用setDataSource和create的区别是,create时已经执行了MediaPlayer.prepare ...

  10. java swing 音乐播放器-乐乐音乐

    乐乐音乐1.0(本地版) 乐乐音乐是基于musique 开源播放器开发的java swing音乐播放器,实现了mp3.flac.ape.wav等多种音频格式的播放和ksc歌词的解析.制作和显示. 完成 ...

随机推荐

  1. warning in ./src/router/index.js (Emitted value instead of an instance of Error) Error compiling template: Uncaught (in promise) TypeError: Cannot set properties of undefined (setting 'jsoninfo'

    目录 warning in ./src/router/index.js (Emitted value instead of an instance of Error) Error compiling ...

  2. linux安装clickhouse

    linux安装clickhouse 1. 系统要求 ClickHouse可以在任何具有x86_64,AArch64或PowerPC64LE CPU架构的Linux,FreeBSD或Mac OS X上运 ...

  3. 整理php防注入和XSS攻击通用过滤

    对网站发动XSS攻击的方式有很多种,仅仅使用php的一些内置过滤函数是对付不了的,即使你将filter_var,mysql_real_escape_string,htmlentities,htmlsp ...

  4. tensorboard可视化点云

    tensorboard可视化点云 用 tensorboard 自带的 add_mesh 方法:支持可视化点云和网格,参考链接: tensorflow 网站的tensorboard pytorch 网站 ...

  5. 数据泵(impdb)导入Oracle分片的数据库dump文件

    数据泵(impdb)导入Oracle数据库 一.sqlplus登录目标数据库,创建导入的目录路径 #该目录要在导入的数据库本机建立,如果是docker就在容器内部创建 create directory ...

  6. openssl加解密实战

    一.概念 1.加密有两种类型 密钥加密(secret-key encryption)使用相同的密钥进行加密和解密,也叫对称加密 公钥加密(public-key encryption)使用不同的密钥进行 ...

  7. umich cv-2-2

    UMICH CV Linear Classifiers 在上一篇博文中,我们讨论了利用损失函数来判断一个权重矩阵的好坏,在这节中我们将讨论如何去找到最优的权重矩阵 想象我们要下到一个峡谷的底部,我们自 ...

  8. NGINX相关介绍其一

    HTTP协议和NGINX 跨网络的主机间通讯 远程的两台主机联系在一起 套接字Socket是进程间通信IPC的一种实现,允许位于不同主机(或同一主机)上不同进程之间进行通信和数据交换,SocketAP ...

  9. Azure Data Factory(十)Data Flow 组件详解

    一,引言 随着大数据技术的不断发展,数据处理和分析变得越来越重要.为了满足企业对数据处理的需求,微软推出了 Azure Data Factory (ADF),它是一个云端的数据集成服务,用于创建.安排 ...

  10. rust程序设计(3)结构体相关概念和疑问

    结构体 // 如何定义结构体 struct User { active: bool, username: String, email: String, sign_in_count: u64, } // ...