mp3 datei in j2me abspielen

geh nochmal zurück und such nach dem POST: Wichtig: Vor dem ersten Posten bitte lesen!

und dannach kickst du das Erste an J2ME Codebeispiele / anklicken LESEN 😉
 
Die Codebeispiele habe ich natürlich schon probiert.
Was muss ich abändern um im Player eine mp3 statt einer wav abzuspielen? Denn eine wav datei bläst das jar file natürlich viel mehr auf und gibt es ein Größenlimit für .jar Dateien?
Außerdem bin ich natürlich auf der Suche nach einer Methode die auf möglichst vielen Handys funktioniert.

So stehts im guide:
Java:
try {
      Player player = Manager.createPlayer(getClass().getResourceAsStream("/b.wav"), "audio/x-wav");
      player.start();
    } catch (Exception e) {
      e.printStackTrace();
    }

und so sieht meine Abänderung auf mp3 aus die aber nicht funktioniert:
Java:
try {
      Player player = Manager.createPlayer(getClass().getResourceAsStream("Dateiname.mp3"), "audio/mpeg");
      player.start();
    } catch (Exception e) {
      e.printStackTrace();
    }

MfG Knexi
 
Zuletzt bearbeitet:
Dein Beispiel passt. "Geht nicht" ist immer eine sehr dämliche Aussage. Du musst schon sagen WAS genau nicht funktioniert, wie du feststellst, dass es nicht funktioniert, was stattdessen passiert, und/oder eine Fehlermeldung. Sicher, dass der Pfad passt? "Dateiname.mp3" und nicht "/Dateiname.mp3"?

Midi können so ziemlich alle Geräte abspielen - allerdings in recht unterschiedlichen Qualitäten. Wenn du wirklich professionell für mehrere/viele Geräte programmieren willst, wirst du nicht drum rum kommen, für jedes Gerät oder zumindest jede "Gerätegruppe" ein eigenes JAR zu erstellen.
 
Dein Beispiel passt. "Geht nicht" ist immer eine sehr dämliche Aussage. Du musst schon sagen WAS genau nicht funktioniert, wie du feststellst, dass es nicht funktioniert, was stattdessen passiert, und/oder eine Fehlermeldung.
Auf dem virtuellen Handy in der Programmierumgebung verschwindet beim starten der app plötzlich das virtuelle handy und es tut sich gar nichts - kein fehler etc.
Beim ausführen auf meinem Handy kommt folgender Fehler: Java-Fehler, unzulässiges Format
Die MIDP und CLDC Version stimmen jedoch.


Sicher, dass der Pfad passt? "Dateiname.mp3" und nicht "/Dateiname.mp3"?
hatte den Pfad mit / war nur ein Tippfehler


MfG Knexi
 
Auch keine Fehlermeldung auf der Konsole? Welches SDK/WTK verwendest du? Das ist ein sehr ungewöhnliches Problem.

Evtl. unterstützt dein Handy das Format ja nicht!?
 
Auch keine Fehlermeldung auf der Konsole? Welches SDK/WTK verwendest du? Das ist ein sehr ungewöhnliches Problem.
Ich verwende Java Netbeans 6.5.1
Es kommt überhaupt keine Fehlermeldung weder beim builden noch beim debuggen. Nur das virtuelle Handy verschwindet beim starten der app.

Evtl. unterstützt dein Handy das Format ja nicht!?
Da das Handy mp3 dateien im eigenen musikplayer unterstützt glaube ich nicth, dass mit einer selbst geschriebenen java app dies plötzlich nicht mehr funktioniert. Mein Handy ist ein Samsung ST-5230


MfG Knexi
 
Ich verwende Java Netbeans 6.5.1
Es kommt überhaupt keine Fehlermeldung weder beim builden noch beim debuggen. Nur das virtuelle Handy verschwindet beim starten der app.

Schwer vorstellbar. Poste doch mal den kompletten Inhalt der NetBeans-Konsole (inkl. aller Build- und Startlogs). Trotzdem bleibt die Frage nach dem WTK/SDK offen. NetBeans ist ja nur die IDE.

Da das Handy mp3 dateien im eigenen musikplayer unterstützt glaube ich nicth, dass mit einer selbst geschriebenen java app dies plötzlich nicht mehr funktioniert. Mein Handy ist ein Samsung ST-5230

Kann ich jetzt aus dem Stegreif nicht sagen, aber ja, scheint so als könnte das Handy mp3 abspielen. Mach doch mal ein gigantisches try-catch um deinen Code, fange alles ab was geht und gebe dann die Fehlermeldung bspw. auf einem Alert aus.
 
Schwer vorstellbar. Poste doch mal den kompletten Inhalt der NetBeans-Konsole (inkl. aller Build- und Startlogs). Trotzdem bleibt die Frage nach dem WTK/SDK offen. NetBeans ist ja nur die IDE.
Das SDK müsste das jdk1.6.0_13 von sun sein und WTK J2ME. Hoffe das ist so richtig.

Hier der gesamte Konsoleninhalt:

pre-init:
pre-load-properties:
exists.config.active:
exists.netbeans.user:
exists.user.properties.file:
load-properties:
exists.platform.active:
exists.platform.configuration:
exists.platform.profile:
basic-init:
cldc-pre-init:
cldc-init:
cdc-init:
ricoh-pre-init:
ricoh-init:
semc-pre-init:
semc-init:
savaje-pre-init:
savaje-init:
sjmc-pre-init:
sjmc-init:
nokiaS80-pre-init:
nokiaS80-init:
nsicom-pre-init:
nsicom-init:
bdj-init:
post-init:
init:
conditional-clean-init:
conditional-clean:
deps-jar:
pre-preprocess:
do-preprocess:
Pre-processing 0 file(s) into D:\sound_mp3_new\build\preprocessed directory.
post-preprocess:
preprocess:
pre-compile:
extract-libs:
do-compile:
post-compile:
compile:
pre-obfuscate:
proguard-init:
skip-obfuscation:
proguard:
post-obfuscate:
obfuscate:
pre-preverify:
do-preverify:
Preverifying 1 file(s) into D:\sound_mp3_new\build\preverified directory.
post-preverify:
preverify:
pre-jar:
set-password-init:
set-keystore-password:
set-alias-password:
set-password:
create-jad:
add-configuration:
add-profile:
do-extra-libs:
nokiaS80-prepare-j9:
nokiaS80-prepare-manifest:
nokiaS80-prepare-manifest-no-icon:
nokiaS80-create-manifest:
semc-build-j9:
do-jar:
Building jar: D:\sound_mp3_new\dist\sound_mp3_new.jar
nsicom-create-manifest:
do-jar-no-manifest:
bdj-build-image:
update-jad:
Updating application descriptor: D:\sound_mp3_new\dist\sound_mp3_new.jad
Generated "D:\sound_mp3_new\dist\sound_mp3_new.jar" is 6453374 bytes.
ricoh-init-dalp:
ricoh-add-app-icon:
ricoh-build-dalp-with-icon:
ricoh-build-dalp-without-icon:
ricoh-build-dalp:
savaje-prepare-icon:
savaje-build-jnlp:
post-jar:
jar:
pre-run:
cldc-run:
Copying 1 file to D:\sound_mp3_new\dist\nbrun837399763331032942
Copying 1 file to D:\sound_mp3_new\dist\nbrun837399763331032942
Jad URL for OTA execution: http://localhost:8082/servlet/org.n...vlet/D:/sound_mp3_new/dist//sound_mp3_new.jad
Starting emulator in execution mode
Running with storage root C:\Users\Knexi\j2mewtk\2.5.2\appdb\DefaultColorPhone
Running with locale: German_Austria.1252
Running in the identified_third_party security domain
java.lang.OutOfMemoryError
Execution completed.
3412231 bytecodes executed
410 thread switches
1668 classes in the system (including system classes)
17789 dynamic objects allocated (536280 bytes)
3 garbage collections (468492 bytes collected)
ricoh-run:
semc-icon-assembly:
semc-ppro-emulator:
semc-do-run:
semc-run:
savaje-run:
sjmc-run:
nokiaS80-run:
nsicom-run:
bdj-run:
run:
BUILD SUCCESSFUL (total time: 15 seconds)



Meiner Meinung nach steht dort nichts brauchbares.


Kann ich jetzt aus dem Stegreif nicht sagen, aber ja, scheint so als könnte das Handy mp3 abspielen. Mach doch mal ein gigantisches try-catch um deinen Code, fange alles ab was geht und gebe dann die Fehlermeldung bspw. auf einem Alert aus.

Da das Projekt (reines Projekt zum testen vom sound um anderes auszuschließen) nur aus den 2 Zeilen besteht und um diese Zeilen herum bereits eine Exception ist habe ich das bereits erledigt:

Java:
try {
      Player player = Manager.createPlayer(getClass().getResourceAsStream("/01-papa_roach-burn.mp3"), "audio/mp3");
      player.start();
    } catch (Exception e) {
      e.printStackTrace();
    }

Hoffe das ist so richtig da meine Programmiererfahrung in Java praktisch fast 0 ist 😀
Habe zwar Programmiererfahrung und somit auf Erfahrung mit Exceptions in C# oder C++ aber noch nicht bzw kaum in Java.


MfG Knexi
 
Hm, du verwendest das WTK 2.5 in Kombi mit NetBeans. Sehe da jetzt auch nichts besonderes, außer den OutOfMemoryError. Bekommst du ein HelloWorld denn zum Laufen? Schon mal versucht das ganze von Hand zu kompilieren/auszuführen?
 
Erstmal einen generellen Dank für deine Bemühungen

Hm, du verwendest das WTK 2.5 in Kombi mit NetBeans. Sehe da jetzt auch nichts besonderes, außer den OutOfMemoryError. Bekommst du ein HelloWorld denn zum Laufen?
Andere Programme funktionieren alle ohne Probleme.

Schon mal versucht das ganze von Hand zu kompilieren/auszuführen?

Von Hand zu kompilieren hab ich noch net probiert. Wie macht man das?




MfG Knexi
 
Habe nun erstmal versucht das Programm auf .wav abzuändern, leider ohne Erfolg. Aber immerhin wirft er nun eine exception. Könnte es vielleicht etwas damit zu tun haben dass die sound datei zu groß ist und somit ohne buffern die musikdatei nicht sauber abgespielt werden kann und dadurch die app gar nicht erst startet?
Ist es jetzt eigentlich nur für den Testfall möglich den code unten einfach unter startApp hineinzukopieren oder muss irgendetwas vom codeteil im Konstruktor oder der Klasse stehen?

Es könnte auch sein dass ich vergessen habe eine Klasse oder ein Paket zu importieren
Reichen folgende imports?
Java:
import javax.microedition.midlet.*;
import javax.microedition.media.Manager;
import javax.microedition.media.Player;
import java.io.InputStream;
Oder bringt es vielleicht was das java SDK3.0 zu laden?

Der code sieht im Moment so aus:
Java:
public void startApp() {
         try {
      Player player = Manager.createPlayer(getClass().getResourceAsStream("/01-papa_roach-burn.wav"), "audio/x-wav");
      player.start();
    } catch (Exception e) {
      e.printStackTrace();
    }


Beim Ausführen kommt nun folgendes:

Starting emulator in execution mode
Running with storage root C:\Users\Knexi\j2mewtk\2.5.2\appdb\DefaultColorPhone
Running with locale: German_Austria.1252
Running in the identified_third_party security domain
New version Java(TM) Platform Micro Edition SDK 3.0 is available at: Download Java Platform Micro Edition Software Development Kit 3.0 for Windows RR
java.lang.IllegalArgumentException
at javax.microedition.media.Manager.createPlayer(Manager.java:726)
at wav_demo.startApp(wav_demo.java:16)
at javax.microedition.midlet.MIDletProxy.startApp(MIDletProxy.java:44)
at com.sun.midp.midlet.Scheduler.schedule(+270)
at com.sun.midp.main.Main.runLocalClass(+28)
at com.sun.midp.main.Main.main(+80)
Execution completed.







MfG Knexi
 
Zuletzt bearbeitet:
Wie gesagt, du erhälst ja schon weiter oben irgendwo einen OutOfMemoryError. Also zu wenig Speicher verfügbar. Und dann haben die meisten Mobiltelefone auch noch eine Obergrenze für die JAR-Datei-Größe.
 
Danke für deine Hilfe mit einer kleineren .wav datei hats super funktioniert. Weist du zufälligs das ungefähre größenlimit für .jar dateien?



MfG Knexi
 
Zuletzt bearbeitet:

Zurück
Oben