⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 midmusic.java

📁 带背景音乐的汉诺塔自动演示程序!采用JBuilder开发环境!
💻 JAVA
字号:
package hannoi;

import javax.sound.midi.*;
import java.io.*;

public class MidMusic { //mid音乐类
    static Sequencer sequencer;
    private String songPath;
    private byte[] data;
    public MidMusic(String songPath) {
        this.songPath = songPath;
        InputStream resIn = getClass().getResourceAsStream(songPath);
        try {
            ByteArrayOutputStream out = new ByteArrayOutputStream(resIn.
                    available());
            byte[] buf = new byte[10000];
            int bytes;
            while ((bytes = resIn.read(buf)) != -1) {
                out.write(buf, 0, bytes);
            }
            resIn.close();
            out.close();
            data = out.toByteArray();
        } catch (IOException e2) {
            e2.printStackTrace();
        }
        try {
            sequencer = MidiSystem.getSequencer();
            sequencer.open();
            sequencer.setLoopCount( -1); //设置播放的次数为无限循环
            try {
                sequencer.setSequence(new ByteArrayInputStream(data));
                sequencer.start();
            } catch (IOException e1) {
                e1.printStackTrace();
            } catch (InvalidMidiDataException e1) {
                e1.printStackTrace();
            }

        } catch (MidiUnavailableException e) {
            e.printStackTrace();
        }
    }

    public static void cut() { //暂停函数
        sequencer.stop();
    }

    public static void play() { //继续播放函数
        sequencer.start();
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -