Java实现的简单音乐播放器功能示例
作者:c_jian 发布时间:2021-08-06 20:06:54
标签:Java,音乐播放器
本文实例讲述了Java实现的简单音乐播放器功能。分享给大家供大家参考,具体如下:
应用名称:Java简单的音乐播放器
用到的知识:Java GUI编程,线程,IO
开发环境:win8+eclipse+jdk1.8
功能说明:可以选择内置的音乐文件播放,循环播放,停止。PS:这个播放器只能播放.au .aiff .wav .midi .rfm格式的音频。
效果图:
源代码:
import java.applet.AudioClip;
import java.awt.*;
import java.net.*;
import java.awt.event.*;
import java.io.*;
import java.applet.*;
import javax.swing.*;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
public class MusicPlayer extends JDialog implements Runnable,ItemListener,ActionListener{
/**
*
*/
private static final long serialVersionUID = 1L;
Thread thread;
JComboBox<Serializable> choiceMusic;
AudioClip clip;
JButton buttonPlay,buttonLoop,buttonStop;
String str;
MusicPlayer(){
thread=new Thread(this);
choiceMusic=new JComboBox();
choiceMusic.addItem("选择音频文件");
choiceMusic.addItem("src/1.wav");
choiceMusic.addItem("2.wav");
choiceMusic.addItem("3.wav");
choiceMusic.addItemListener(this);
buttonPlay=new JButton("播放");
buttonLoop=new JButton("循环");
buttonStop=new JButton("停止");
buttonPlay.addActionListener(this);
buttonLoop.addActionListener(this);
buttonStop.addActionListener(this);
setLayout(new FlowLayout());
add(choiceMusic);
add(buttonPlay);
add(buttonLoop);
add(buttonStop);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setSize(350,80);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==buttonPlay)
clip.play();
else if(e.getSource()==buttonLoop)
clip.loop();
else if(e.getSource()==buttonStop)
clip.stop();
}
@Override
public void itemStateChanged(ItemEvent arg0) {
str=choiceMusic.getSelectedItem().toString();
if(!(thread.isAlive())){
thread=new Thread(this);
}
try{thread.start();
}
catch(Exception ee){}
}
@Override
public void run() {
try {
File file=new File(str);
URI uri=file.toURI();
URL url=uri.toURL();
clip=Applet.newAudioClip(url);
} catch (MalformedURLException e) {
}
}
public static void main(String[] args) {
MusicPlayer musicplayer=new MusicPlayer();
musicplayer.setVisible(true);
}
}
希望本文所述对大家java程序设计有所帮助。
来源:https://blog.csdn.net/C_jian/article/details/50509044
0
投稿
猜你喜欢
- 动态数据源在很多具体应用场景的时候,我们需要用到动态数据源的情况,比如多租户的场景,系统登录时需要根据用户信息切换到用户对应的数据库。又比如
- 一、什么是JSONJSON(JavaScript Object Notation)是一种基于JavaScript语法子集的开放标准数据交换格
- 一、简介随着 Apple 发布 iPhone X 之后,各大手机厂商也开始模仿这种刘海屏的设计,而且刘海屏手机的用户也是越来越大,前段时间将
- java 多线程死锁 相信有过多线程编程经验的朋友,都吃过死锁的苦。除非你不使用多线程,否则死锁的可能性会一直存在。为什么会出现
- 下面分享的是一个Java多线程模拟停车场系统的小实例(Java的应用还是很广泛的,哈哈),具体代码如下:Park类public class
- LRU简介LRU是Least Recently Used 近期最少使用算法,它就可以将长时间没有被利用的数据进行删除。实现最近面了阿里的外包
- Quartz简介Quartz 是一个开源的作业调度框架,它完全由 Java 写成,并设计用于 J2SE 和 J2EE 应用中。它提供了巨大的
- Pom文件的依赖我们进入POM文件,首先是看到的是Pom文件中的parentparent是Spring Boot的框架版本控制中心<!
- 这篇文章主要介绍了Java实现发送手机短信语音验证功能代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
- 前言我通常是不太关心代码的具体实现的,因为我的开发语言很杂,倾向于一些最简单通用的方式去解决。今儿不小心在群里看到一位朋友发了下面的java
- 本文是Spring Security系列中的一篇。在上一篇文章中,我们通过实现UserDetailsService和UserDetails接
- 依赖配置结合前面的内容,这里我们要嵌入数据库的操作,这里以操作MySQL为例整合Mybatis,首先需要在原来的基础上添加以下依赖<!
- 这篇文章主要介绍了spring boot如何加入mail邮件支持,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
- 关于C# Timer类 在C#里关于定时器类就有3个C# Timer使用的方法1.定义在System.Windows.Forms
- Java IO BufferedInputStream概要:BufferedInputStream是缓冲输入流,继承于Filte
- 1、Nacos config springboot starter包我们在springboot应用中集成nacos配置中心时,添加了以下依赖
- ZooKeeper 是一个典型的分布式数据一致性解决方案,分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、分布
- application.ymlspring: datasource: username: root password
- Swing 程序用JFrame 对象实现了它们的窗口。JFrame 类是AWT Frame 类的一个子类。它还加入了一些Swing 所独有的
- 一. 线程池简介1. 线程池的概念:线程池就是首先创建一些线程,它们的集合称为线程池。使用线程池可以很好地提高性能,线程池在系统启动时即创建