最近学了一些java于是突发奇想做了一个小程序来播放音乐,代码使用到第三方库 jlayer 来播放mp3音乐。Swing库用于gui的创建。
?
mp3音乐播放
?Play.java
这里需要一个第三方java包?jlayer 大家可以浏览器下载也可以去我群里下载:706128290
package com.Play;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import javazoom.jl.decoder.JavaLayerException;
import javazoom.jl.player.Player;
public class Play {
String audio; // 音乐文件
//播放音乐方法
public Play(String audio) {
this.audio = audio;
try {
Player player = new Player(new FileInputStream(this.audio)); // 创建播放器
System.out.println("播放音乐:"+this.audio);
player.play(); // 开始播放
} catch (JavaLayerException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
?
gui加多线程
?main.java
package com.Play;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.lang.Runnable;
public class main {
public static void main(String[] args) {
JFrame frame = new JFrame("Play Audio");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// panel
JPanel panel = new JPanel();
frame.setContentPane(panel);
// Label
JLabel label = new JLabel("选择音乐文件:");
panel.add(label);
// textfield 文本输入框
JTextField textfield = new JTextField(20);
panel.add(textfield);
// Button 播放音乐
JButton button = new JButton("播放");
panel.add(button);
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String audio = textfield.getText(); // 获取文本输入框内容
// D:\\Programs\\JAVA_MX\\Play\\file\\She - Vicky萱萱.mp3
PlayAudio(audio); // 启动进程播放
}
});
frame.setSize(300, 200); // 窗口大小
frame.setVisible(true); // 窗口循环
}
// Button Run
private static void PlayAudio(String audio) {
new Thread(new PlayRunnable(audio)).start();
}
}
// 创建一个音乐播放进程类
class PlayRunnable implements Runnable {
String audio;
public PlayRunnable(String audio) {
this.audio = audio;
}
@Override
public void run() {
Play play = new Play(this.audio);
}
}
|