lean isSoundEnable() {
return soundEnable;
}
public void setSoundEnable(boolean e) {
if (!e)
soundEnable = e;
}
手机游戏中的声音处理详解(3)
时间:2011-02-07
在V300中,
1)public class EMSound
{
public String type;
public byte[] data;
public EMSound(byte[] data, String type)
{
this.type = type;
this.data = data;
}
}
2)import javax.microedition.media.Player;
import javax.microedition.media.PlayerListener;
import javax.microedition.media.Manager;
import javax.microedition.media.Control.*;
3)
//Sound soundPlayer;
PlayerListener soundListener = new EMSoundListener();
Player soundPlayer;
EMSound currentSound = null;
boolean soundPlaying = false;
boolean soundEnable = true;
class EMSoundListener
implements PlayerListener {
public void playerUpdate(Player player, String event, Object eventData)
{ //soundStateChanged(int event)
if (event == PlayerListener.STOPPED) {
soundPlaying = false;
}
if (event == PlayerListener.STARTED) {
soundPlaying = true;
}
}
}
public EMSound loadSound(String resfile, int resID) {
EMSound sound;
try {
InputStream is = getClass().getResourceAsStream(resfile + "/" + resID +
".mid");
int len = (int) is.skip(10000);
is.close();
is = getClass().getResourceAsStream(resfile + "/" + resID + ".mid");
byte[] barr = new byte[len];
is.read(barr);
is.close();
sound = new EMSound(barr, "audio/midi");
}
catch (Exception ex) {
sound = null;
}
return sound;
}
public void playSound(EMSound sound, int count) {
if (!soundEnable)
try {
if (soundPlaying)
if (soundPlayer == null) {
soundPlayer = Manager.createPlayer(new ByteArrayInputStream(sound.data),
sound.type);
soundPlayer.addPlayerListener(soundListener);
currentSound = null;
}
if (sound != currentSound) {
soundPlayer.close();
soundPlayer = Manager.createPlayer(new ByteArrayInputStream(sound.data),
sound.type);
currentSound = sound;
}
soundPlayer.start();
}
catch (Exception ex) {
soundPlaying = false;
System.out.println(ex.toString());
}
}
public void stopSound() {
if (!soundEnable)
if (soundPlayer != null) {
try
catch (Exception e)
}
}
public boolean isSoundPlaying() {
return soundPlaying;
}
public boolean isSoundEnable() {
return soundEnable;
}
手机游戏中的声音处理详解(4)
时间:2011-02-07
3.读取mid文件
1)
import javax.microedition.media.*;
2)
Player player;
void initSound() {
try {
player = Manager.createPlayer(getStream("/sound/b_main.mid"),
"audio/midi");
player.realize();
player.setLoopCount(100000);
}
catch (Exception e)
}
3)
//在程序中对声音的控制
m_playSound = (byte) (1 - m_playSound);
if (m_playSound == 1) {
try
catch (Exception e) {}
}
if (m_playSound == 0) {
try
catch (Exception e) {}
}
|