LPAudioPlayer.java
上传用户:gyyuli
上传日期:2013-07-09
资源大小:3050k
文件大小:3k
源码类别:

J2ME

开发平台:

Java

  1. /**
  2.  * <p>Title: lipeng</p>
  3.  * <p>Description:
  4.  * You cannot remove this copyright and notice.
  5.  * You cannot use this file without the express permission of the author.
  6.  * All Rights Reserved</p>
  7.  * <p>Copyright: lizhenpeng (c) 2004</p>
  8.  * <p>Company: LP&P</p>
  9.  * @author lizhenpeng
  10.  * @version 1.3.0
  11.  * <p>
  12.  * Revise History
  13.  * 2004.07.12 Revise exception mode and exception description V1.1.0
  14.  * 2004.07.20 Change audio loop mode to thread mode v1.2.0
  15.  * 2004.07.20 revise mode to test pass mode V1.2.1
  16.  * 2004.09.25 add a method replay media,add two data member to load resource,
  17.  * add a method to load resource,
  18.  * v1.3.0
  19.  * </p>
  20.  */
  21. package exframework;
  22. import javax.microedition.media.*;
  23. import javax.microedition.media.control.*;
  24. import java.io.*;
  25. public class LPAudioPlayer implements Runnable
  26. {
  27.   private Player player;
  28.   private String filename;
  29.   private String format;
  30.   public LPAudioPlayer(String filename,String format,boolean isLoad)
  31.   {
  32.     this.format = format;
  33.     this.filename = filename;
  34.     if(isLoad)
  35.     {
  36.       loadResource();
  37.     }
  38.   }
  39.   public LPAudioPlayer(String filename,String format)
  40.   {
  41.     this.format = format;
  42.     this.filename = filename;
  43.   }
  44.   public void loadResource()
  45.   {
  46.     try
  47.     {
  48.       InputStream is=getClass().getResourceAsStream("/"+filename);
  49.       player=Manager.createPlayer(is,format);
  50.     }
  51.     catch(IOException ex)
  52.     {
  53.       System.out.println("can't load "+filename);
  54.       System.out.println(ex.toString());
  55.     }
  56.     catch(MediaException ex)
  57.     {
  58.       System.out.println("can't create audio");
  59.       System.out.println(ex.toString());
  60.     }
  61.   }
  62.   public void setLoop()
  63.   {
  64.     if(player!=null)
  65.     {
  66.       player.setLoopCount(-1);
  67.     }
  68.   }
  69.   public void setVolume(int level)
  70.   {
  71.     if(player!=null)
  72.     {
  73.       VolumeControl control = (VolumeControl)player.getControl("VolumeControl");
  74.       control.setLevel(level);
  75.     }
  76.   }
  77.   public void stop()
  78.   {
  79.     if(player!=null)
  80.     {
  81.       try
  82.       {
  83.         player.stop();
  84.       }
  85.       catch(MediaException ex)
  86.       {
  87.         System.out.println("can't stop audio");
  88.         System.out.println(ex.toString());
  89.       }
  90.     }
  91.   }
  92.   public void play()
  93.   {
  94.     if(player!=null)
  95.     {
  96.       try
  97.       {
  98.         player.realize();
  99.         player.prefetch();
  100.         player.start();
  101.       }
  102.       catch(MediaException ex)
  103.       {
  104.         System.out.println("can't play audio");
  105.         System.out.println(ex.toString());
  106.       }
  107.     }
  108.   }
  109.   public void replay()
  110.   {
  111.     close();
  112.     System.gc();
  113.     loadResource();
  114.     play();
  115.   }
  116.   public void run()
  117.   {
  118.     replay();
  119.   }
  120.   public void threadPlay()
  121.   {
  122.     new Thread(this).start();
  123.   }
  124.   public void close()
  125.   {
  126.     if(player!=null)
  127.     {
  128.       player.close();
  129.       player=null;
  130.     }
  131.   }
  132. }