AudioPlayer.java 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package audio;
  2. import java.io.FileInputStream;
  3. import javazoom.jl.decoder.JavaLayerException;
  4. import javazoom.jl.player.Player;
  5. public class AudioPlayer{
  6. private Player clip;
  7. private FileInputStream fis;
  8. public AudioPlayer() {
  9. clip = null;
  10. }
  11. public void setClip(Song s) {
  12. try {
  13. if(clip != null){
  14. clip.close();
  15. }
  16. fis = new FileInputStream(s.getAudio());
  17. clip = new Player(fis);
  18. } catch (Exception e) {
  19. e.printStackTrace();
  20. }
  21. }
  22. public void play() {
  23. if (clip == null)
  24. return;
  25. new Thread(new Runnable() {
  26. @Override
  27. public void run() {
  28. if(clip != null){
  29. try {
  30. clip.play();
  31. } catch (JavaLayerException e) {
  32. e.printStackTrace();
  33. }
  34. }
  35. }}).start();
  36. }
  37. public void play(final int framePosition) {
  38. if (clip == null)
  39. return;
  40. new Thread(new Runnable() {
  41. @Override
  42. public void run() {
  43. if(clip != null){
  44. try {
  45. clip.play(framePosition);
  46. } catch (JavaLayerException e) {
  47. e.printStackTrace();
  48. }
  49. }
  50. }}).start();
  51. }
  52. public void close() {
  53. if(clip != null)
  54. {
  55. clip.close();
  56. clip = null;
  57. fis = null;
  58. }
  59. }
  60. public long getProgress()
  61. {
  62. if(clip != null)
  63. return clip.getPosition()*1000;
  64. else
  65. return 0L;
  66. }
  67. }