MIDP2.0声音用法

//游戏关卡控制
  private int gameLevel = 0;

//  //游戏音乐控制
  private Player treadSoundPlayer;
  Player backgroundMusicPlayer;
  private int volumeLevel = 100; //音量大小的控制
  private VolumeControl vc;
  private boolean playState = false; //(播放/关闭)状态

 声音处理///
  public void playerUpdate(Player p, String event, Object eventData) { //player监听
    try {
      if (event == PlayerListener.END_OF_MEDIA) {
        playState = false;
      }

      if (event == PlayerListener.STARTED) {
        playState = true;
//       this.musicVolume();
      }
    }
    catch (Exception e) {
      System.out.println("Error at 11: " + event + e.toString());
    }
  }

  protected void musicStart() { //随机产生一个音乐
    try {
      backgroundMusicPlayer = null;
      backgroundMusicPlayer = createPlayer("/2c.mid", "audio/midi");
//      backgroundMusicPlayer.addPlayerListener(this);
//      backgroundMusicPlayer.setLoopCount( -1);
        vc = (VolumeControl) backgroundMusicPlayer.getControl("VolumeControl");

        if (vc != null)
        {
          if (gameLevel == 0)
            backgroundMusicPlayer.setLoopCount( -1);
          else
            backgroundMusicPlayer.setLoopCount(5);
          backgroundMusicPlayer.start();
        }
    }
    catch (Exception e) {
      System.out.println("Error at 20: " + backgroundMusicPlayer + e.toString());
    }
  }

  protected void musicClose() { //关掉音乐
    try {
      if(backgroundMusicPlayer != null){
   backgroundMusicPlayer.close();
   backgroundMusicPlayer = null;
 }
    }
    catch (Exception e) {
      System.out.println("Error at 30: " + e.toString());
    }
  }

  protected void musicPause() { //暂停音乐
    try {
      if (backgroundMusicPlayer != null && playState)
        pausetime = backgroundMusicPlayer.getMediaTime();
      backgroundMusicPlayer.stop();
    }
    catch (Exception e) {
      System.out.println("Error at 40:" + e.toString());
    }
  }

  protected void musicContinue() { //音乐继续
    try {
      if (backgroundMusicPlayer != null && !playState)
        backgroundMusicPlayer.setMediaTime(pausetime);
      backgroundMusicPlayer.start();
    }
    catch (Exception e) {
      System.out.println("Error at 50:" + e.toString());
    }
  }

  protected void musicVolume()                         //设置音乐的音量
   {
     if (vc != null)
       vc.setLevel(volumeLevel);
   }

  protected Player createPlayer(String filename, String format) { //创建音乐
    Player p = null;
    try {
      InputStream is = getClass().getResourceAsStream(filename);
      p = Manager.createPlayer(is, format);
      p.prefetch();
    }
    catch (Exception x) {
      System.out.println("Error at 60: " + filename + x.toString());
    }
    return p;
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值