JAVA播放MP3的完整代码---简单写个小例子

来源:互联网 发布:freebsd linux 性能 编辑:程序博客网 时间:2024/05/01 03:40
  1. import javax.media.ControllerEvent;  
  2. import javax.media.ControllerListener;  
  3. import javax.media.NoPlayerException;  
  4. import javax.media.Player;  
  5. import javax.media.Manager;  
  6. import javax.media.MediaLocator;  
  7. import javax.media.EndOfMediaEvent;  
  8. import javax.media.PrefetchCompleteEvent;  
  9. import javax.media.RealizeCompleteEvent;  
  10. import java.io.*;  
  11. import java.util.*;  
  12. public class PlayerMusic implements ControllerListener {  
  13. //播放对象  
  14. private Player player;  
  15. //是否循环播放  
  16. private boolean first,loop;  
  17. //文件路径  
  18. private String path;  
  19. //存放MP3文件  
  20. private List<String> mp3List;  
  21. //当前MP3文件数量  
  22. private int mp3NO=0;  
  23.   
  24. PlayerMusic(List<String> mp3List)  
  25. {  
  26. this.mp3List=mp3List;  
  27. }  
  28.   
  29. //播放方法  
  30. public void start()  
  31. {  
  32. try {  
  33. player = Manager.createPlayer(new File(mp3List.get(mp3NO)).toURI().toURL());  
  34. catch (NoPlayerException e) {  
  35. // TODO 自动生成 catch 块  
  36. e.printStackTrace();  
  37. System.out.println("不能播放此文件!");  
  38. return;  
  39. catch (IOException e) {  
  40. // TODO 自动生成 catch 块  
  41. e.printStackTrace();  
  42. return;  
  43. }  
  44. if(player==null)  
  45. {  
  46. System.out.println("播放文件为空!");  
  47. return;  
  48. }  
  49. player.addControllerListener(this);  
  50. //提取媒体内容  
  51. player.prefetch();  
  52. }  
  53.   
  54.   
  55.   
  56. public void controllerUpdate(ControllerEvent e) {  
  57. //当媒体播放结束时,循环播放  
  58. if(e instanceof EndOfMediaEvent)  
  59. {  
  60. mp3NO++;  
  61. System.out.println(mp3NO);  
  62. if(mp3NO<mp3List.size())  
  63. {  
  64.   
  65. this.start();  
  66. }  
  67. return;  
  68. }  
  69.   
  70. //当提取媒体的内容结束  
  71. if (e instanceof PrefetchCompleteEvent) {  
  72. System.out.println("内容结束");  
  73. player.start();  
  74. return;  
  75. }  
  76.   
  77. //当实例化后  
  78. if (e instanceof RealizeCompleteEvent) {  
  79. System.out.println("实例化");  
  80. //pack(); //执行pack()操作  
  81. return;  
  82. }  
  83.   
  84. }  
  85. public static void main(String[] args)  
  86. {  
  87. List<String> path=new ArrayList<String>();  
  88. path.add("X:\\Song\\只对你有感觉.mp3");  
  89. PlayerMusic play=new PlayerMusic(path);  
  90. play.start();  
  91. }  
原创粉丝点击