java 实现音乐播放器的简单实例

实现效果图:

代码如下

package cn.hncu.games;

import java.applet.Applet;

import java.applet.AudioClip;

import java.awt.Color;

import java.awt.Font;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import java.io.File;

import java.net.URL;

import javax.swing.DefaultListModel;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JList;

import javax.swing.ListModel;

import javax.swing.event.ListSelectionEvent;

import javax.swing.event.ListSelectionListener;

public class MusicPlayer extends JFrame{

//显示(歌曲名称)播放状态的标签

JLabel songNameLabel = null;

//四个播放功能键按钮

JButton btnLast = null; //上一曲

JButton btnPlay = null; //播放/停止

JButton btnNext = null; //下一曲

JButton btnLoop = null; //循环

//歌曲列表

JList songsList = null;

AudioClip songs[] = null;

AudioClip currentSong = null;

int index=0; //当前歌曲在JList中的位置(序号)

//歌曲文件名数组---String

String[] strSongNames={ "song1.wav","song2.wav","song3.wav","song4.wav","song5.wav","song6.wav" };

final String DIR="songs\\";

//播放音乐的线程

Thread playerThread=null;

boolean isPlayOrStop = true;//true代表播放状态

boolean isLoop = false; //是否为循环状态

public MusicPlayer() {

super("音乐播放器");

setBounds(300, 50, 310, 500);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setLayout(null);

//hello();

//显示(歌曲名称)播放状态的标签

songNameLabel = new JLabel();

Font songNameFont = new Font("黑体",Font.ITALIC,18);

songNameLabel.setFont(songNameFont);

songNameLabel.setText("我的音乐播放器");

songNameLabel.setBounds(10, 10, 300, 40);

getContentPane().add(songNameLabel);

//四个播放功能键按钮

btnLast = new JButton();

btnPlay = new JButton();

btnNext = new JButton();

btnLoop = new JButton();

//位置大小

btnLast.setBounds(10, 70, 50, 40);

btnPlay.setBounds(70, 70, 50, 40);

btnNext.setBounds(130, 70, 50, 40);

btnLoop.setBounds(190, 70, 50, 40);

//设置图片

btnLast.setIcon( new ImageIcon("images2/1.png"));

btnPlay.setIcon( new ImageIcon("images2/2.png"));

btnNext.setIcon( new ImageIcon("images2/3.png"));

btnLoop.setIcon( new ImageIcon("images2/4.png"));

//添加到框架

getContentPane().add(btnLast);

getContentPane().add(btnPlay);

getContentPane().add(btnNext);

getContentPane().add(btnLoop);

//添加监听

MyMouseListener mml = new MyMouseListener();

btnLast.addMouseListener(mml);

btnPlay.addMouseListener(mml);

btnNext.addMouseListener(mml);

btnLoop.addMouseListener(mml);

//歌曲列表的标题

JLabel listLabel = new JLabel("播放列表");

listLabel.setBounds(10, 120, 100, 30);

Font listLabelFont = new Font("黑体",Font.BOLD,16);

listLabel.setFont(listLabelFont);

getContentPane().add(listLabel);

//歌曲列表

/*

songsList = new JList();

songsList.setBounds(10, 150, 250, 300);

songsList.setBackground(Color.CYAN);

//把所有歌曲名逐个添加到List中

//songsList.setListData(strSongNames);

for(int i=0;i

DefaultListModel dm = (DefaultListModel)songsList.getModel();

dm.add(i,strSongNames[i]);

}

getContentPane().add(songsList);

*/

DefaultListModel lm = new DefaultListModel();

songsList = new JList(lm);

songsList.setBounds(10, 150, 250, 300);

songsList.setBackground(Color.CYAN);

//把所有歌曲名逐个添加到List中

//songsList.setListData(strSongNames);

songs = new AudioClip[strSongNames.length];

for(int i=0;i

lm.add(i,strSongNames[i]);

songs[i] = loadSound(strSongNames[i]);

}

getContentPane().add(songsList);

//lm.remove(3);

//对JList控件的监听技术实现

songsList.addListSelectionListener(new ListSelectionListener() {

@Override

public void valueChanged(ListSelectionEvent e) {

currentSong.stop();

index = songsList.getSelectedIndex();

isPlayOrStop = true;

playerThread = new Thread( new MusicRun() );

playerThread.start();

}

});

//单开一个线程,专用于播放音乐

playerThread = new Thread( new MusicRun() );

playerThread.start();

setVisible(true);

}

private AudioClip loadSound(String fileName) {

try {

URL url = new URL("file:songs\\"+fileName);

AudioClip au = Applet.newAudioClip(url);

return au;

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

//讲解音乐播放的基本技术

private void hello() {

try {

File f = new File("songs\\song1.wav");

URL url = f.toURI().toURL();

//URL url = new URL("file:songs\\song1.wav");

AudioClip au = Applet.newAudioClip(url);

au.play();

//au.loop();

//au.stop();

} catch (Exception e) {

e.printStackTrace();

}

}

private class MyMouseListener extends MouseAdapter{

@Override

public void mouseClicked(MouseEvent e) {

JButton btn = (JButton) e.getSource();

currentSong.stop();

if(btn==btnPlay){

isPlayOrStop = !isPlayOrStop;

}else if(btn==btnLast){

index--;

if(index<0){

index = strSongNames.length-1;

}

//isPlayOrStop=true;

}else if(btn==btnNext){

index++;

index = index%strSongNames.length;

}else if(btn==btnLoop){

isLoop = !isLoop;

}

if(isPlayOrStop){//播放

playerThread = new Thread( new MusicRun() );

playerThread.start();

}else{//停止

songsList.setSelectedIndex(index);

songNameLabel.setText("停止播放:"+strSongNames[index]);

btnPlay.setIcon( new ImageIcon("images2/2.png"));

}

}

}

private class MusicRun implements Runnable{

@Override

public void run() {

currentSong = songs[index];

if(isLoop){

currentSong.loop();

songNameLabel.setText("循环播放:"+strSongNames[index]);

}

if (isPlayOrStop) {

currentSong.play();

}

//在播放列表中选定当前歌曲

songsList.setSelectedIndex(index);

//把播放按钮的图标切换成“停止”

btnPlay.setIcon( new ImageIcon("images2/5.png"));

if(!isLoop){

songNameLabel.setText("正在播放:"+strSongNames[index]);

}

}

}

public static void main(String[] args) {

new MusicPlayer();

}

}

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望通过本文能帮助到大家,谢谢大家对本站的支持!

java播放器使用教程_java 实现音乐播放器的简单实例相关推荐

  1. html音乐播放器自动切歌,HTML音乐播放——切歌

    $(function(){ $("#next").click(next); }); // 使用JQuery选择标签,则切歌后两首歌一起播放,用JS挺好 var eBar = doc ...

  2. html音乐播放器代码自动,html5 css3音乐播放器代码

    特效描述:html5 css3 音乐播放器代码.html5 css3音乐播放器代码 代码结构 1. 引入CSS 2. 引入JS 3. HTML代码 标题歌手 00:00/00:00 var music ...

  3. 【音乐播放】基于matlab GUI动感音乐播放【含Matlab源码 778期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[音乐播放]基于matlab GUI动感音乐播放[含Matlab源码 778期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...

  4. java音乐播放器视频_java 实现音乐播放器的简单实例

    java 实现音乐播放器的简单实例 实现效果图: 代码如下 package cn.hncu.games; import java.applet.Applet; import java.applet.A ...

  5. java swing 播放音乐_java swing 音乐播放器-乐乐音乐

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

  6. java音乐不能播放_java的音乐播放器不能播放?

    package music22; import java.awt.*; import java.awt.event.*; import java.io.*; import java.util.*; i ...

  7. Java爬虫后台+微信小程序之音乐播放器(上)

    微信小程序–音乐播放器(Java爬虫后台在下文篇章公布) 主页面: wxml: css就不展示了,比较多 <view class='container' style='width:{{wid}} ...

  8. 音乐播放器android版,Android版音乐播放器

    音乐播放器是一个非常常见的应用,这篇博客就是介绍如何制作一个简单的音乐播放器,这款音乐播放器具有以下的功能:播放歌曲.暂停播放歌曲..显示歌曲的总时长.显示歌曲的当前播放时长.调节滑块可以将歌曲调节到 ...

  9. android 音乐播放器论文,毕业论文:ANDROID音乐播放器

    用于设置歌曲播放进度条和显示当前播放时间和总时间.第四个用于显示播放控制和音量进度条. (3)界面的初始化操作 Android的每一个可视化界面,都有其的唯一的布局配置文件,该文件里面有各种布局方式, ...

最新文章

  1. springBoot单元测试-模拟MVC测试
  2. 卷积神经网络CNN总结
  3. PolarDB-X 2.0 全局 Binlog 和备份恢复能力解读
  4. 字典树(Trie树)
  5. mysql的索引介绍_1
  6. Python正则表达式尽可能小的匹配(遇到第一个结束字符串就停止匹配)
  7. python导出数据找不到csv_python – 将数据从neo4j导出到csv而不是json
  8. [Unity][摄像机]动态代码设置Camera的CullingMask遮罩
  9. Activiti7工作流+Springboot快速入门
  10. 顺丰同城赴港IPO 有望凭借高增速和生态布局成为第三方即时配送平台第一股
  11. 计算机学院考勤管理办法,计算机学院软件学院考勤制度(试行).doc
  12. r语言调用python_R语言与Python协同工作
  13. 使用 ngrok 进行内网穿透
  14. 网络攻防之wireshark抓取登录信息
  15. 《目标检测蓝皮书》第4篇 经典热门网络结构
  16. Spark的宽窄依赖
  17. 区块链将会怎样颠覆Google、Amazon、Facebook和Apple?
  18. 用u盘重装微软官方win10专业版--详细操作文档
  19. 前端开发实习面试题(JavaScript篇)
  20. 年报发布后市值应声暴涨300亿“京东模式”修炼多年内功终显露

热门文章

  1. python控制git版本库
  2. 服务监控-URL接口监控
  3. MD5 AES Des 加密解密
  4. uva-10954-贪心
  5. 详解动态规划最长公共子序列--JavaScript实现
  6. 【机器学习实战】第3章 决策树(Decision Tree)
  7. hiho_1050_树中的最长路
  8. Maven project deploy to Nexus
  9. 一道面试题:用多种方法实现两个数的交换
  10. Python 动态变量名定义与调用