*/
import javax.microedition.media.*;
import java.io.*;
public class soundPlayer
{
public String pType;//手机型号
public final String[] mediaType=new String[]{"audio/x-wav","audio/midi","audio/mpeg","audio/amr"};
public soundPlayer(String s)
{
pType=s;
}
/*从字节数组里获取输入流*/
public InputStream getInputStream(byte[] data)
{
try
{
ByteArrayInputStream bis=new ByteArrayInputStream(data);
return (InputStream)bis;
}
catch(Exception e)
{
return null;
}
}
public Player createPlayer(InputStream is,String t,int loop)
{
Player player;
if(is!=null)
{
try
{
if(t.equals("mid"))
player=Manager.createPlayer(is,mediaType[1]);
else
if(t.equals("wav"))
player=Manager.createPlayer(is,mediaType[0]);
else
if(t.equals("mp3"))
player=Manager.createPlayer(is,mediaType[2]);
else
if(t.equals("amr"))
player=Manager.createPlayer(is,mediaType[3]);
else
return null;
}
catch(Exception e)
{
return null;
}
}
else
return null;
player.setLoopCount(loop);
return player;
}
/*创建播放器*/
public Player createPlayer(String s,int loop)
{
Player player;
try
{
InputStream is=getClass().getResourceAsStream(s);
String t=s.substring(s.indexOf('.')+1,s.length());
if(t.equals("mid"))
player=Manager.createPlayer(is,mediaType[1]);
else
if(t.equals("wav"))
player=Manager.createPlayer(is,mediaType[0]);
else
if(t.equals("mp3"))
player=Manager.createPlayer(is,mediaType[2]);
else
if(t.equals("amr"))
player=Manager.createPlayer(is,mediaType[3]);
else
return null;
}
catch(Exception e)
{
return null;
}
player.setLoopCount(loop);
return player;
}
/*播放声音*/
public void playSound(Player p)
{
try
{
//System.out.println(p.getState());
if(p.getState()!=400)
p.start();
}
catch(Exception e)
{
}
}
/*暂停声音*/
public void pauseSound(Player p)
{
try
{
if(p.getState()==400)
p.stop();
}
catch(Exception e)
{
}
}
/*停止声音*/
public void stopSound(Player p)
{
try
{
if(p.getState()==400)
p.stop();
if(!pType.equals("NOKIA"))
p.deallocate();
}
catch(Exception e)
{
System.out.println(e);
}
}
/*关闭声音*/
public void closeSound(Player p)
{
try
{
stopSound(p);
p.close();
}
catch(Exception e)
{
}
}
}