用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

java midi音乐文件播放器

2012-09-14 作者: 神马举报

[java]代码库

import javax.swing.*;
import javax.sound.midi.*;
import java.awt.GridLayout;
import java.io.File;
 
public class MidiPlayer extends JFrame {
    @SuppressWarnings("deprecation")
    MidiPlayer(String song) {
        super(song);
        setSize(300, 150);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        MidiPanel midi = new MidiPanel(song);
        JPanel pane = new JPanel();
        pane.add(midi);
        setContentPane(pane);
        show();
    }
 
    public static void main(String[] arguments) {
 
        MidiPlayer pm = new MidiPlayer("c:\\1.midi"); // midi文件
 
    }
}
 
class MidiPanel extends JPanel implements Runnable {
    Thread runner;
    JProgressBar progress = new JProgressBar();
    Sequence currentSound;// 音序
    Sequencer player;// 默认音序器
    String songFile;// 歌曲
 
    MidiPanel(String song) {
        super();
        songFile = song;
        JLabel label = new JLabel("Playing file...");
        setLayout(new GridLayout(2, 1));
        add(label);
        add(progress);
        if (runner == null) {
            runner = new Thread(this);
            runner.start();
        }
    }
 
    public void run() {
 
        try {
 
            System.out.println(songFile);
            File file = new File(songFile);
 
            currentSound = MidiSystem.getSequence(file);// 获取音序文件
            player = MidiSystem.getSequencer();// 获取音序器
            player.open();
            player.setSequence(currentSound);// 设置音序器播放指定音乐文件
 
            progress.setMinimum(0);
            progress.setMaximum((int) player.getMicrosecondLength());// 设置最大位歌曲时间
 
            player.start();
            while (player.isRunning()) {
                progress.setValue((int) player.getMicrosecondPosition());// 设置播放文件显示当前播放进度
                try {
                    Thread.sleep(1000);
                } catch (Exception e) {
                    // TODO: handle exception
                }
            }
            player.close();
        } catch (Exception e) {
            // TODO: handle exception
        }
    }
 
}

[代码运行效果截图]


java midi音乐文件播放器


网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...