midmusic.java

来自「带背景音乐的汉诺塔自动演示程序!采用JBuilder开发环境!」· Java 代码 · 共 54 行

JAVA
54
字号
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 + =
减小字号Ctrl + -
显示快捷键?