java播放器使用教程_java 实现音乐播放器的简单实例
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 实现音乐播放器的简单实例相关推荐
- html音乐播放器自动切歌,HTML音乐播放——切歌
$(function(){ $("#next").click(next); }); // 使用JQuery选择标签,则切歌后两首歌一起播放,用JS挺好 var eBar = doc ...
- html音乐播放器代码自动,html5 css3音乐播放器代码
特效描述:html5 css3 音乐播放器代码.html5 css3音乐播放器代码 代码结构 1. 引入CSS 2. 引入JS 3. HTML代码 标题歌手 00:00/00:00 var music ...
- 【音乐播放】基于matlab GUI动感音乐播放【含Matlab源码 778期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[音乐播放]基于matlab GUI动感音乐播放[含Matlab源码 778期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...
- java音乐播放器视频_java 实现音乐播放器的简单实例
java 实现音乐播放器的简单实例 实现效果图: 代码如下 package cn.hncu.games; import java.applet.Applet; import java.applet.A ...
- java swing 播放音乐_java swing 音乐播放器-乐乐音乐
乐乐音乐1.0(本地版) 乐乐音乐是基于musique 开源播放器开发的java swing音乐播放器,实现了mp3.flac.ape.wav等多种音频格式的播放和ksc歌词的解析.制作和显示. 完成 ...
- java音乐不能播放_java的音乐播放器不能播放?
package music22; import java.awt.*; import java.awt.event.*; import java.io.*; import java.util.*; i ...
- Java爬虫后台+微信小程序之音乐播放器(上)
微信小程序–音乐播放器(Java爬虫后台在下文篇章公布) 主页面: wxml: css就不展示了,比较多 <view class='container' style='width:{{wid}} ...
- 音乐播放器android版,Android版音乐播放器
音乐播放器是一个非常常见的应用,这篇博客就是介绍如何制作一个简单的音乐播放器,这款音乐播放器具有以下的功能:播放歌曲.暂停播放歌曲..显示歌曲的总时长.显示歌曲的当前播放时长.调节滑块可以将歌曲调节到 ...
- android 音乐播放器论文,毕业论文:ANDROID音乐播放器
用于设置歌曲播放进度条和显示当前播放时间和总时间.第四个用于显示播放控制和音量进度条. (3)界面的初始化操作 Android的每一个可视化界面,都有其的唯一的布局配置文件,该文件里面有各种布局方式, ...
最新文章
- springBoot单元测试-模拟MVC测试
- 卷积神经网络CNN总结
- PolarDB-X 2.0 全局 Binlog 和备份恢复能力解读
- 字典树(Trie树)
- mysql的索引介绍_1
- Python正则表达式尽可能小的匹配(遇到第一个结束字符串就停止匹配)
- python导出数据找不到csv_python – 将数据从neo4j导出到csv而不是json
- [Unity][摄像机]动态代码设置Camera的CullingMask遮罩
- Activiti7工作流+Springboot快速入门
- 顺丰同城赴港IPO 有望凭借高增速和生态布局成为第三方即时配送平台第一股
- 计算机学院考勤管理办法,计算机学院软件学院考勤制度(试行).doc
- r语言调用python_R语言与Python协同工作
- 使用 ngrok 进行内网穿透
- 网络攻防之wireshark抓取登录信息
- 《目标检测蓝皮书》第4篇 经典热门网络结构
- Spark的宽窄依赖
- 区块链将会怎样颠覆Google、Amazon、Facebook和Apple?
- 用u盘重装微软官方win10专业版--详细操作文档
- 前端开发实习面试题(JavaScript篇)
- 年报发布后市值应声暴涨300亿“京东模式”修炼多年内功终显露