Ola, pessoal!
Estou fazendo um dicionário em J2ME, e esta funcionando legal, mas no celular o áudio e executado apenas 7 vezes o áudio, após isso preciso reiniciar o aplicativo, e depois de 7 vezes ele não executa mais o áudio e tenho q reiniciar de novo.
Alguém sabe onde esta o erro?
Abaixo segue todo o código fonte para que testem, só vai precisar inserir um áudio na pasta src.
import java.io.IOException;
import java.io.InputStream;
import javax.microedition.lcdui.ChoiceGroup;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.StringItem;
import javax.microedition.lcdui.TextField;
import javax.microedition.media.Manager;
import javax.microedition.media.MediaException;
import javax.microedition.media.Player;
import javax.microedition.midlet.*;
public class DicMobile extends MIDlet implements CommandListener {
public Display Display;
public Form Fm_Principal;
public TextField tf_Procurar;
public ChoiceGroup cg_TipoTraducao;
public StringItem si_Resultado, si_Procurado;
public Command cm_Sair, cm_Traduzir, cm_Pronuncia;
public Player player = null;
public void startApp() {
System.out.println("---> INICIOU A APLICAÇÃO <---");
Display = Display.getDisplay(this);
Fm_Principal = new Form("DicMobile 1.0");
cg_TipoTraducao = new ChoiceGroup("", ChoiceGroup.POPUP, new String []{"Inglês > Português", "Português > Inglês"}, null);
tf_Procurar = new TextField("Procurar: ", "a",30,TextField.ANY);
si_Resultado = new StringItem("", "...");
si_Procurado = new StringItem("", "");
cm_Sair = new Command("Sair", Command.BACK, 0);
cm_Traduzir = new Command("Traduzir", Command.ITEM, 1);
cm_Pronuncia = new Command("Pronuncia", Command.ITEM, 2);
Fm_Principal.append(cg_TipoTraducao);
Fm_Principal.append(tf_Procurar);
Fm_Principal.append(si_Resultado);
Fm_Principal.addCommand(cm_Sair);
Fm_Principal.addCommand(cm_Traduzir);
Fm_Principal.addCommand(cm_Pronuncia);
Display.setCurrent(Fm_Principal);
Fm_Principal.setCommandListener(this);
}
public void pauseApp() {}
public void destroyApp(boolean unconditional)
{
System.out.println("MIDlet Finalizada....");
}
public void commandAction(Command c, Displayable d)
{
if (c == cm_Sair)
{
destroyApp(true);
notifyDestroyed();
}
if (c == cm_Pronuncia)
{
InputStream tune = this.getClass().getResourceAsStream(tf_Procurar.getString() + ".mp3");
try {
player = Manager.createPlayer(tune, "audio/mpeg");
player.start();
System.out.println("---> Som Executado <---");
}
catch (IOException ex) {}
catch (MediaException ex) {}
}
if (c == cm_Traduzir)
{
InputStream is = getClass().getResourceAsStream(tf_Procurar.getString() + ".txt");
byte[] b = new byte[1024];
try {
int length = is.read(b, 0, 1024);
is.close();
if (length > 0)
{
si_Resultado.setText(new String(b, 0, length));
}
}
catch (IOException e) {}
}
}
}