Hey Leute,
da der eingebaute Mp3 Player auf meinem Handy (Samsung S5230) keine Möglichkeit bietet, meine Lieder in einer zufälligen Reihenfolge abzuspielen, hab ich mir gedacht, dass ich das ja selbst machen könnt. Es klappt soweit auch ganz gut, nur leider wird in manchen Fällen folgende Exception ausgeworfen :"unable to realize - buffering fail". Dies geschiet bei ganz normalen mp3-Liedern, die der eingebaute Mp3 Player problemlos abspielen kann. Ich konnte noch keine Gesetzmäßigkeit feststellen, aber habe so die Vermutung, dass es hautsächlich bei größeren Dateien (>5mb) passiert. Hier ist mal das bisschen Code:
ich hoffe ihr könnt mir genauer sagen, woran es liegt und vor allem wie ichs beheben kann.
danke, euer stevey
da der eingebaute Mp3 Player auf meinem Handy (Samsung S5230) keine Möglichkeit bietet, meine Lieder in einer zufälligen Reihenfolge abzuspielen, hab ich mir gedacht, dass ich das ja selbst machen könnt. Es klappt soweit auch ganz gut, nur leider wird in manchen Fällen folgende Exception ausgeworfen :"unable to realize - buffering fail". Dies geschiet bei ganz normalen mp3-Liedern, die der eingebaute Mp3 Player problemlos abspielen kann. Ich konnte noch keine Gesetzmäßigkeit feststellen, aber habe so die Vermutung, dass es hautsächlich bei größeren Dateien (>5mb) passiert. Hier ist mal das bisschen Code:
Java:
import java.io.InputStream;
import java.util.Enumeration;
import java.util.Random;
import java.util.Vector;
import javax.microedition.io.Connector;
import javax.microedition.io.file.FileConnection;
import javax.microedition.io.file.FileSystemRegistry;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Form;
import javax.microedition.media.*;
import javax.microedition.midlet.*;
public class RandomMusicPlayer extends MIDlet implements PlayerListener{
Display display;
Form form;
Vector fileNames;
Player player;
public RandomMusicPlayer() {
display = Display.getDisplay(this);
form = new Form("Random Music Player");
fileNames = new Vector();
try {
FileConnection fc = (FileConnection)Connector.open("file:///Mmc/Sounds/MyMusik/");
Enumeration enumeration = fc.list("*", true);
while(enumeration.hasMoreElements()) {
fileNames.addElement(enumeration.nextElement().toString());
}
int rnd = new Random().nextInt(fileNames.size());
form.append("Random: "+rnd+"\n");
form.append("Title: "+fileNames.elementAt(rnd)+"\n");
InputStream is = Connector.openInputStream("file:///Mmc/Sounds/MyMusik/"+fileNames.elementAt(rnd));
player = Manager.createPlayer(is, "audio/mp3");
player.addPlayerListener(this);
player.start();
} catch (Exception e) {
form.append("Exception: "+e.getMessage());
}
}
protected void startApp() throws MIDletStateChangeException {
display.setCurrent(form);
}
protected void pauseApp() {
// TODO Auto-generated method stub
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO Auto-generated method stub
}
public void playerUpdate(Player p, String s, Object o) {
if(s.equals(PlayerListener.END_OF_MEDIA)) {
try {
int rnd = new Random().nextInt(fileNames.size());
form.append("Random: "+rnd+"\n");
form.append("Title: "+fileNames.elementAt(rnd)+"\n");
InputStream is = Connector.openInputStream("file:///Mmc/Sounds/MyMusik/"+fileNames.elementAt(rnd));
player = Manager.createPlayer(is, "audio/mp3");
player.addPlayerListener(this);
player.start();
} catch (Exception e) {
form.append("Exception: "+e.getMessage());
}
}
}
}
ich hoffe ihr könnt mir genauer sagen, woran es liegt und vor allem wie ichs beheben kann.
danke, euer stevey