java音乐播放器教程

如何用java做一个音乐播放器

首先下载播放mp3的包,比如mp3spi1.9.4.jar。在工程中添加这个包。

播放器演示代码如下

package com.test.audio;

import java.io.File;

import java.awt.BorderLayout;

import java.awt.FileDialog;

import java.awt.Frame;

import java.awt.GridLayout;

import java.awt.Label;

import java.awt.List;

import java.awt.Menu;

import java.awt.MenuBar;

import java.awt.MenuItem;

import java.awt.MenuShortcut;

import java.awt.Panel;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.KeyEvent;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.sound.sampled.AudioFormat;

import javax.sound.sampled.AudioInputStream;

import javax.sound.sampled.AudioSystem;

import javax.sound.sampled.DataLine;

import javax.sound.sampled.SourceDataLine;

public class MusicPlayer extends Frame {

    /**

 * 

 */

private static final long serialVersionUID = -2605658046194599045L;

boolean isStop = true;// 控制播放线程

    boolean hasStop = true;// 播放线程状态

 

    String filepath;// 播放文件目录

    String filename;// 播放文件名称

    AudioInputStream audioInputStream;// 文件流

    AudioFormat audioFormat;// 文件格式

    SourceDataLine sourceDataLine;// 输出设备

 

    List list;// 文件列表

    Label labelfilepath;//播放目录显示标签

    Label labelfilename;//播放文件显示标签

 

    public MusicPlayer() {

        // 设置窗体属性

        setLayout(new BorderLayout());

        setTitle(“MP3 Music Player”);

        setSize(350, 370);

 

        // 建立菜单栏

        MenuBar menubar = new MenuBar();

        Menu menufile = new Menu(“File”);

        MenuItem menuopen = new MenuItem(“Open”, new MenuShortcut(KeyEvent.VK_O));

        menufile.add(menuopen);

        menufile.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {

                open();

            }

        });

        menubar.add(menufile);

        setMenuBar(menubar);

 

        // 文件列表

        list = new List(10);

        list.addMouseListener(new MouseAdapter() {

            public void mouseClicked(MouseEvent e) {

                // 双击时处理

                if (e.getClickCount() == 2) {

                    // 播放选中的文件

                    filename = list.getSelectedItem();

                    play();

                }

            }

        });

        add(list, “Center”);

 

        // 信息显示

        Panel panel = new Panel(new GridLayout(2, 1));

        labelfilepath = new Label(“Dir:”);

        labelfilename = new Label(“File:”);

        panel.add(labelfilepath);

        panel.add(labelfilename);

        add(panel, “North”);

 

        // 注册窗体关闭事件

        addWindowListener(new WindowAdapter() {

            public void windowClosing(WindowEvent e) {

                System.exit(0);

            }

        });

        setVisible(true);

    }

 

    // 打开

    private void open() {

        FileDialog dialog = new FileDialog(this, “Open”, 0);

        dialog.setVisible(true);

        filepath = dialog.getDirectory();

        if (filepath != null) {

            labelfilepath.setText(“Dir:” + filepath);

 

            // 显示文件列表

            list.removeAll();

            File filedir = new File(filepath);

            File[] filelist = filedir.listFiles();

            for (File file : filelist) {

                String filename = file.getName().toLowerCase();

                if (filename.endsWith(“.mp3”) || filename.endsWith(“.wav”)) {

                    list.add(filename);

                }

            }

        }

    }

 

    // 播放

    private void play() {

        try {

            isStop = true;// 停止播放线程

            // 等待播放线程停止

            System.out.print(“Start:” + filename);

            while (!hasStop) {

                System.out.print(“.”);

                try {

                    Thread.sleep(10);

                } catch (Exception e) {

                }

            }

            System.out.println(“”);

            File file = new File(filepath + filename);

            labelfilename.setText(“Playing:” + filename);

 

            // 取得文件输入流

            audioInputStream = AudioSystem.getAudioInputStream(file);

            audioFormat = audioInputStream.getFormat();

            // 转换mp3文件编码

            if (audioFormat.getEncoding() != AudioFormat.Encoding.PCM_SIGNED) {

                audioFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED,

                        audioFormat.getSampleRate(), 16, audioFormat

                                .getChannels(), audioFormat.getChannels() * 2,

                        audioFormat.getSampleRate(), false);

                audioInputStream = AudioSystem.getAudioInputStream(audioFormat,

                        audioInputStream);

            }

 

            // 打开输出设备

            DataLine.Info dataLineInfo = new DataLine.Info(

                    SourceDataLine.class, audioFormat,

                    AudioSystem.NOT_SPECIFIED);

            sourceDataLine = (SourceDataLine) AudioSystem.getLine(dataLineInfo);

            sourceDataLine.open(audioFormat);

            sourceDataLine.start();

 

            // 创建独立线程进行播放

            isStop = false;

            Thread playThread = new Thread(new PlayThread());

            playThread.start();

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

    

    class PlayThread extends Thread {

        byte tempBuffer[] = new byte[320];

        

        public void run() {

            try {

                int cnt;

                hasStop = false;

                // 读取数据到缓存数据

                while ((cnt = audioInputStream.read(tempBuffer, 0,

                        tempBuffer.length)) != -1) {

                    if (isStop)

                        break;

                    if (cnt  0) {

                        // 写入缓存数据

                        sourceDataLine.write(tempBuffer, 0, cnt);

                    }

                }

                // Block等待临时数据被输出为空

                sourceDataLine.drain();

                sourceDataLine.close();

                hasStop = true;

            } catch (Exception e) {

                e.printStackTrace();

                System.exit(0);

            }

        }

    }

 

    public static void main(String args[]) {

        new MusicPlayer();

    }

}

如何用Java来编写一个音乐播放器

首先要在环境电脑中安装下JMF环境,才能引入javax.sound.sampled.*这个包,一下是用过的代码

package TheMusic;

import java.io.*;

import javax.sound.sampled.*;

public class Music {

public static void main(String[] args) {

// TODO Auto-generated method stub

//修改你的音乐文件路径就OK了

AePlayWave apw=new AePlayWave(“突然好想你.wav”);

apw.start();

}

}

在程序中实例化这个类,启动线程,实例化的时候参照Test修改路径就OK播放声音的类

Java代码

public class AePlayWave extends Thread {

private String filename;

public AePlayWave(String wavfile) {

filename = wavfile;

}

public void run() {

File soundFile = new File(filename);

AudioInputStream audioInputStream = null;

try {

audioInputStream = AudioSystem.getAudioInputStream(soundFile);

} catch (Exception e1) {

e1.printStackTrace();

return;

}

AudioFormat format = audioInputStream.getFormat();

SourceDataLine auline = null;

DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);

try {

auline = (SourceDataLine) AudioSystem.getLine(info);

auline.open(format);

} catch (Exception e) {

e.printStackTrace();

return;

}

auline.start();

int nBytesRead = 0;

byte[] abData = new byte[512];

try {

while (nBytesRead != -1) {

nBytesRead = audioInputStream.read(abData, 0, abData.length);

if (nBytesRead = 0)

auline.write(abData, 0, nBytesRead);

}

} catch (IOException e) {

e.printStackTrace();

return;

} finally {

auline.drain();

auline.close();

}

}

}

用java做音视频播放器

我做过一个MP3的..给你看看.

package music;

import java.awt.*;

import java.awt.event.*;

import java.io.*;

import java.util.*;

import javax.swing.*;

import javax.media.bean.playerbean.*; //这个包要用到JMF

public class MP3 extends JFrame implements Runnable {

public JLabel shijian;

private JSlider sldDiameter;

public MediaPlayer soumd1;

public JButton playSound, loopSound, stopsound;

public JButton tjian, shanc, baocun, duqu;

public JPanel jp1, jp2, jp3, jp4;

public JList jl;

int zongmiao=0;

public Vector vector, mingcheng;

boolean fo = false, geshi = false;

JLabel jl1, jl2, sj1, sj2;

JTextField jt1, jt2;

JButton queding, xiugai;

int zong = 0;

int a = 0, b = 0, you = 1,mm=0;

int fenzhong, miaozhong;

public MP3() {

super(“java简单音乐播放器“);

soumd1 = new MediaPlayer();

Container c = getContentPane();

c.setLayout(new FlowLayout());

mingcheng = new Vector();

jp1 = new JPanel();

shijian = new JLabel();

jp1.add(shijian);

c.add(jp1);

playSound = new JButton(“开始播放“);

loopSound = new JButton(“循环播放“);

stopsound = new JButton(“停止播放“);

jp2 = new JPanel();

jp2.add(playSound);

jp2.add(loopSound);

jp2.add(stopsound);

c.add(jp2);

jp4 = new JPanel();

sj1 = new JLabel();

sj2 = new JLabel();

sldDiameter = new JSlider(SwingConstants.HORIZONTAL, 0, 100, 0);

sldDiameter.setMajorTickSpacing(1);

sldDiameter.setPaintTicks(true);

jp4.add(sj1);

jp4.add(sldDiameter);

jp4.add(sj2);

c.add(jp4);

vector = new Vector();

jl = new JList(mingcheng);

jl.setVisibleRowCount(5);

jl.setFixedCellHeight(40);

jl.setFixedCellWidth(265);

jl.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

c.add(new JScrollPane(jl));

tjian = new JButton(“添加“);

shanc = new JButton(“删除“);

duqu = new JButton(“读取“);

baocun = new JButto

摘选自网上,希望对你有帮助。

java音乐播放器教程

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月28日 08:59:49
下一篇 2024年3月28日 09:06:58

相关推荐

  • 硬盘安装linux,硬盘安装win7系统教程

    hp288g8安装linux 好用。hpgen8安装Linux可以使cpu占用程度降低,减少卡顿。hpgen8安装Linux可以降低cpu温度,减少散热的压力。hpgen8安装Linux可以使功能更加便捷,方便新手操作。 在安装系统前,你要备份好资料和系统。Linux系统能装的软件和游戏比较少,要装,都是通过wine安装的。 首先开机看到下图界面按下F10,…

    2024年5月23日
    4300
  • 用c语言写一个播放器,c语言编写视频播放器

    我想用C语言编写一个简单的MP3播放器,请问是什么原理,有什么函数可以用… 1、本次的实训的mp3播放器主要涉及到的内容如下: MCI API :负责音乐的播放,暂停,继续,停止等功能 2)链表的构建 3)文件读取问题 文件存储有很多种方式,将数据写入文件时可以以空格或者回车为结束。 2、用C语言播放音乐,一般需要额外的库或者调用系统的API函数…

    2024年5月23日
    4200
  • 黑客学习教程入门画画,黑客初学教程

    黑客初学者怎样入门 成为黑客的基础入门需要学习计算机编程、网络技术、操作系统、加密技术等相关知识。同时,需要具备好奇心、探索精神和解决问题的能力。想成为黑客,需要首先熟练掌握一种或多种编程语言,如Python、Java等。 对于零基础的朋友第一步要做的是掌握web前后端基础和服务器通讯原理,前后端包括h5,js,PHP,sql等等。 学习密码技术 作为一名优…

    2024年5月23日
    3800
  • 入门级c语言片成,c语言速成教程

    一个入门级的C语言编程 式子可写成(1+1/1)+(1+1/2)+(1+1/3)+…=n+1/1+1/2+1/3+1/5+…+1/F(n),F(n)为斐波那契数列,规律是F(n)=F(n-1)+F(n-2).用递推法计算更快。 就可以练习编程了。还有一个“C语言学习系统”软件,不过感觉只是一个题库系统,如果你觉得题做的不够,不妨也可以…

    2024年5月23日
    8100
  • 黑客游戏app学习,黑客游戏教程

    黑客要知道些什么基本知识? 1、这里我罗列出一些需要学习的知识: (1) 计算机的各种配件知识。 (2) 网卡,(3) 路由器,(4) 交换机等一些网络设备(5) 的专业术语及工作原理。 2、黑客需要具备扎实的计算机基础知识,包括计算机网络、操作系统、编程语言、数据结构等。因此,初学者需要先学习这些基础知识,掌握计算机的工作原理和基本操作。 3、一定要知道最…

    2024年5月23日
    3800
  • 勤哲excel服务器教程,哲勤excel服务器怎么样

    登录excel服务器的方法教程步骤图 1、Excel如果想要登录的话,就是直接在电脑客户端右键新建Excel文件,然后就可以新建一个Excel的文件,直接双击打开就行,或者是在电脑的客户端开始菜单中找到Excel的见面,然后双击就会打开一个Excel的界面。 2、免费激活Excel步骤是打开浏览器搜索office激活工具点击并下载,然后点击进入界面选择其中的…

    2024年5月22日
    4000
  • 黑客学习自律app,黑客自学教程软件下载

    小学生入门黑客教程 编程是黑客必备的技能之一,初学者需要选择一门编程语言进行学习,比如Python、C++、Java等。可以通过在线课程、教程、书籍等方式学习,掌握编程基础和常用算法。 想成为一名黑客从这五本书开始入门1,《Python密码学编程》(第二版)本书是为对加密、破解或密码算法抱有浓厚兴趣的人士准备。 对于零基础的朋友第一步要做的是掌握web前后端…

    2024年5月22日
    7200
  • linux搭建媒体服务器,linux服务器搭建教程视频

    怎么在linux上搭建samba服务器 1、先使用cat命令读入Smb配置文件后通过grep命令-v参数(反向选择)去掉所有注释信息,然后分别删选掉包含#号的行(#),包含;号的行(;)以及所有的空白行(^$),最后最后将过滤后的信息覆盖写入到/etc/samba/smb.conf文件中。 2、在Linux平台,以二进制程序包和源代码两种方式安装samba服…

    2024年5月22日
    5700
  • 白帽黑客学习自律手机,白帽子黑客教程

    白帽黑客的五大白帽黑客 1、Tsutomu Shimomura Tsutomu Shimomura的成名很不幸,他被黑客Kevin Mitnick袭击,后来他将帮助美国联邦调查局抓获Kevin Mitnick作为自己的事业。 2、白帽子,描述的是正面的黑客,他可以识别计算机系统或网络系统中的安全漏洞,但并不会恶意去利用,而是公布其漏洞。 3、白帽黑客:一般来…

    2024年5月22日
    4600
  • 操作系统linux怎么样,linux操作系统教程

    linux系统的特点是什么? 安全、稳定:Linux系统稳定性众所周知,Linux核心设计具有执行效率高、安全性高以及稳定性好的特点。用户界面:用户可以使用鼠标方便、直观和快捷地进行操作。 免费、开放:Linux操作系统是免费的,获得 Linux非常方便,而且节省费用,用户可以进行代码改进。安全性高:包括读、写权限控制、带保护的子系统、审计跟踪、核心授权等,…

    2024年5月22日
    4300

发表回复

登录后才能评论



关注微信