Java播放MP3播放音频
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播放音频的更多相关文章
- java获取Mp3播放时长
最近有一个用java获取mp3播放时长的需求,有两种,一种本地文件,一种网络文件,其中获取网络mp3播放时间的方法找了挺久终于找到个能用的了. 第一种很简单,下载个jar包 jaudiotagger ...
- 你也可以用java的swing可以做出这么炫的mp3播放器_源码下载
I had published the blog : 你用java的swing可以做出这么炫的mp3播放器吗? and to display some screenshots about this M ...
- 你用java的swing可以做出这么炫的mp3播放器吗?
这个mp3播放器是基于java的swing编写的,我认为界面还是可以拿出来和大家看一看评一评. 先说说创作的初衷,由于前段时间工作不是很忙,与其闲着,还不如找一些东西来给自己捣腾捣腾,在 之前写的 j ...
- java实现播放mp3功能
1.首先引入jlayer.jar <!-- https://mvnrepository.com/artifact/javazoom/jlayer --> <dependency> ...
- JAVA按顺序播放多个wav音频
用Java按顺序播放多个音频部件,不是同时播放.代码如下: List<String> files = new ArrayList<String>(); files.add(&q ...
- CEF3 HTML5 audio标签为什么不能播放mp3格式的音频文件
CEF3 HTML5 audio标签 为什么不能播放mp3格式的音频文件 原因略. 解决方法: 找一个最新版的chrome ,我用的是24版本.路径 C:\Documents and Sett ...
- Java使用Player播放mp3
大家平时闲了都会听听歌,散散心,于是很多人就问,在Java里边如何播放歌曲呢,唉,别说,在Java里边还真能歌曲,下面我为大家揭晓. 我们都知道Java里边做什么都需要对应的jar包,首先贴上mave ...
- HTML5音频(自定义mp3播放器源码)
audio对象 src兼容.ogg .wav .mp3 <audio controls src='data/imooc.wav'></audio> width autoplay ...
- Android开发手记(14) 使用MediaPlayer播放mp3
1.获取MediaPlayer实例 (1)可以直接通过new或者create方式: 调用setDataSource和create的区别是,create时已经执行了MediaPlayer.prepare ...
- java swing 音乐播放器-乐乐音乐
乐乐音乐1.0(本地版) 乐乐音乐是基于musique 开源播放器开发的java swing音乐播放器,实现了mp3.flac.ape.wav等多种音频格式的播放和ksc歌词的解析.制作和显示. 完成 ...
随机推荐
- .NET周刊【9月第3期 2023-09-17】
国内文章 在.NET 8 RC1 版本中 MAUI.ASP.NET Core 和 EF8 的新特性 https://www.cnblogs.com/shanyou/p/17698428.html 从年 ...
- AT 下分记录
7.30 AGC063 \(+30=1620\) B 做法假 WA 了三次,为啥总是吃了罚时才能发现问题啊 心态还是需要解决的问题.过完 B 啥都想不出来又自闭了
- DICOM PS3.7 2021a - Message Exchange
PS3.7 DICOM PS3.7 2021a - Message Exchange DICOM Standards Committee Copyright 2021 NEMA A DICOM pub ...
- 基于 P-Tuning v2 进行 ChatGLM2-6B 微调实践
微调类型简介 1. SFT监督微调:适用于在源任务中具有较高性能的模型进行微调,学习率较小.常见任务包括中文实体识别.语言模型训练.UIE模型微调.优点是可以快速适应目标任务,但缺点是可能需要较长的训 ...
- 中山市 香山杯2023 Misc pintu
大便题目啊,跟拼图没有半毛钱关系 附件给我们4703张图片,而且给了tip:8->10,且这些图片的宽度都是一样的. 首先我们考虑将黑色图片当作0,白色图片当作1,将这些按编号顺序将这些图片转成 ...
- LocalDateTime、LocalDate、Date、String相互转化大全及其注意事项
一.前言 大家在开发过程中必不可少的和日期打交道,对接别的系统时,时间日期格式不一致,每次都要转化! 每次写完就忘记了,小编专门来整理一篇来详细说一下他们四个的转换的方法,方便后面使用!! 二.Loc ...
- [WPF]原生TabControl控件实现拖拽排序功能
在UI交互中,拖拽操作是一种非常简单友好的交互.尤其是在ListBox,TabControl,ListView这类列表控件中更为常见.通常要实现拖拽排序功能的做法是自定义控件.本文将分享一种在原生控件 ...
- 关于IP我们需要知道的
IP 在这个数字世界中,互联网已成为我们生活的一部分.而在互联网的背后,网络知识如同一张巨大的蜘蛛网,将我们与世界各地的信息紧密联系在一起.其中,IP这个看似平凡的名词,却是支撑这个虚拟世界的重要基石 ...
- 使用 Java 对比两个PDF文档之间的差异
不论是在团队写作还是在个人工作中,PDF 文档往往会经过多次修订和更新.掌握 PDF 文档内容的变化对于管理文档有极大的帮助.通过对比 PDF 文档,用户可以快速找出文档增加.删除和修改的内容,更好地 ...
- http协议与apache
http协议与apache 1.httpd协议 两台主机通信需要socket文件 yum insatll -y nc [root@localhost ~]#nc -l 8000 #主机1 ...