当前位置: 代码迷 >> J2SE >> jmf
  详细解决方案

jmf

热度:357   发布时间:2016-04-24 00:37:16.0
jmf求助
因为某些原因,我需要用java播放MP3,结果百度到可以用jmf,但是当音乐播放完后,线程还是没有退出,请问要怎么弄才能使音乐播放完后线程就退出。代码如下:
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;

import javax.media.Manager;
import javax.media.NoPlayerException;
import javax.media.Player;

public class MP3Player {

  public static void main(String[] args) throws NoPlayerException,
MalformedURLException, IOException {
  String fileName = "music/sound1.mp3";
  if(args != null && args.length>0){
  fileName = args[0];
  }
  final Player player = Manager.createPlayer(new File(fileName).toURI().toURL());
  player.prefetch();
  player.start();//开始后该线程没有退出,而我需要它退出
  //player.close();
  }
}

------解决方案--------------------
Player类有六个状态

Unrealized = 100;
Realizing = 200;
Realized = 300;
Prefetching = 400;
Prefetched = 500;
Started = 600;

start()之前即Prefetch()之后出于Prefetched 状态,start之后出于Started 状态,当音乐结束后回到Prefetched 状态,只要判断是否为Prefetched 状态就可以了,至于这些状态转换含义,你自己百度吧
  相关解决方案