audioplayer.java

来自「一个J2ME的RPG游戏」· Java 代码 · 共 109 行

JAVA
109
字号

import javax.microedition.media.*;
import java.io.*;

public class AudioPlayer
{
  private Player player;
  private String filename;
  private String format;

  public AudioPlayer(String filename,String format,boolean isLoad)
  {
    this.format = format;
    this.filename = filename;
    if(isLoad)
    {
      loadResource();
    }
  }
  public AudioPlayer(String filename,String format)
  {
    this.format = format;
    this.filename = filename;
  }

  //加载声音文件
  public void loadResource()
  {
    try
    {
      InputStream is=getClass().getResourceAsStream("/"+filename);
      player=Manager.createPlayer(is,format);
    }
    catch(IOException ex)
    {
      System.out.println("can't load "+filename);
      System.out.println(ex.toString());
    }
    catch(MediaException ex)
    {
      System.out.println("can't create audio");
      System.out.println(ex.toString());
    }
  }

  //循环播放
  public void setLoop()
  {
    if(player!=null)
    {
      player.setLoopCount(-1);
    }
  }

  //停止播放
  public void stop()
  {
    if(player!=null)
    {
      try
      {
        player.stop();
      }
      catch(MediaException ex)
      {
        System.out.println("can't stop audio");
        System.out.println(ex.toString());
      }
    }
  }
  
  //播放
  public void play()
  {
    if(player!=null)
    {
      try
      {
        player.realize();
        player.start();
      }
      catch(MediaException ex)
      {
        System.out.println("can't play audio");
        System.out.println(ex.toString());
      }
    }
  }
  
  //重播
  public void replay()
  {
    close();
    System.gc();
    loadResource();
    play();
  }

  //关闭
  public void close()
  {
    if(player!=null)
    {
      player.close();
      player=null;
    }
  }
}

⌨️ 快捷键说明

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