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

📄 midiplayer.java

📁 一个简单的游戏程序
💻 JAVA
字号:
package pushbook.core;

import java.applet.Applet.*;
import java.applet.*;

/**
 * <p>Title: 推箱子</p>
 * <p>Description: Midi音乐播放类</p>
 * <p>Copyright: 无版权</p>
 * <p>Company: 吉林省前郭尔罗斯蒙古族自治县第五高级中学</p>
 * @author 郑雪
 * @version 1.0
 */
public class MidiPlayer
{
    private AudioClip clip = null;         //MIDI文件夹
    private boolean autoStart = true;      //自动开始播放标志
    private String filename = "";          //媒体文件名
    private static MidiPlayer MP = null;   //播放器对象

    /**
     * 构造器,私有为了保证单例
     * @param file String 媒体文件名
     */
    private MidiPlayer(String file)
    {
        try
        {
            filename = file;
            clip = Applet.newAudioClip(getClass().getResource(filename));
            if (autoStart)
                clip.loop();
        }
        catch(Exception e){/*吃掉所有异常*/}
    }


    /**
     * 取得播放器的实例
     * @param file String 媒体文件名
     * @return MidiPlayer 播放器
     */
    public static MidiPlayer getInstance(String file)
    {
        if(MP == null)
        {
            MP = new MidiPlayer(file);
            MP.setAutoStart(true);
        }
        return MP;
    }


    /**
     * 开始播放
     */
    public void start()
    {
        if(clip != null)
        {
            clip.stop();
            clip.loop();
        }
    }


    /**
     * 停止播放
     */
    public void stop()
    {
        if(clip != null)
        {
            clip.stop();
        }
    }


    /**
     * 更换媒体文件
     * @param newfile String 文件名
     */
    public void changeFile(String newfile)
    {
        try
        {
            filename = newfile;
            clip.stop();
            clip = Applet.newAudioClip(getClass().getResource(filename));
            if (autoStart)
            {
                clip.loop();
            }
        }
        catch(Exception e){/*吃掉所有异常*/}
    }


    /**
     * 调整自动开始标志
     * @param auto boolean 标志,true为自动,false为手动
     */
    public void setAutoStart(boolean auto)
    {
        autoStart = auto;
        try
        {
            if(clip != null)
            {
                clip.stop();
                if(auto) clip.loop();
            }
        }
        catch(Exception e){/*吃掉所有异常*/}
    }
}

⌨️ 快捷键说明

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