Töne in BlueJ 1.4.2

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Warum machst du eigentlich

    Quellcode

    1. while(true) {
    2. if(sequencer.isRunning()) {
    3. try {
    4. Thread.sleep(1000);
    5. } catch(InterruptedException ignore) {
    6. break;
    7. }
    8. } else {
    9. break;
    10. }
    11. }
    Alles anzeigen

    anstatt einfach

    Quellcode

    1. while(sequencer.isRunning()) {
    2. try {
    3. Thread.sleep(1000);
    4. } catch(InterruptedException ignore) {
    5. break;
    6. }
    7. }


    Zudem kannst du ja der Fehlermeldung noch mehr Informationen geben:

    Quellcode

    1. System.out.println("Das angegebene File '"+midiFile.getAbsolutePath()+"' existiert nicht.");

    Quellcode

    1. System.out.println("Der Übergabeparameter '"+midiFile.getAbsolutePath()+"' verweist auf ein Verzeichnis anstatt auf ein File.");

    Quellcode

    1. System.out.println("Es besteht kein Lesezugriff auf '"+midiFile.getAbsolutePath()+"'.");

    Die Ausgabe des absoluten Pfades sollte recht praktisch sein.
  • Ich kenne das komische BlueJ-Interface nicht. Kannst du mir mal sagen was für Werte du bei den args[] bekommst?
    Wie viele Einträge haben deine args[] bei welchen Übergabewert im BlueJ-Interface und wie sehen sie aus?
    Spontan würde ich an deiner Stelle einfach:

    Quellcode

    1. {"C:\\Dokumente und Einstellungen\\matthias w\\Eigene Dateien\\tönetest\\faed_4.mid"}

    oder

    Quellcode

    1. {"C:\Dokumente und Einstellungen\matthias w\Eigene Dateien\tönetest\faed_4.mid"}

    versuchen.
  • Das komische BlueJ sagt mir garnix. Keine Ahnung warum die das an den Schulen lehren. Einfacher macht es Java offenbar nicht...

    Aber du musst mir schon mal ein paar mehr Informationen geben. Mich interessiert was bei deinen args[] im Programm ankommt und den zugehörigen String, den du bei dem BlueJ-Eingabefeld für die main()-Methode eingibst.
    (also das, was du hier eingibst: easy-coding.de/index.php?page=…bd176e20097b57675e1a61c53)

    Ersteres bekommst du mit diesem Code raus, den du gleich am Anfang der main()-Methode einfügst:

    Quellcode

    1. for (int i = 0; i < args.length; i++) {
    2. System.out.println("DEBUG " + i + ": " + args[i]);
    3. }


    Und scheibe mir auch die Fehlermeldung, wenn dein Programm eine ausgibt.
  • ich stell dir einfach mal den quellcode rein:

    Quellcode

    1. import javax.sound.midi.*;
    2. import java.io.*;
    3. public class MidiPlayer {
    4. public static void main(String args[]) {
    5. if(args.length == 0) {
    6. //helpAndExit();
    7. System.out.println("Es ist ein Übergabeparameter erforderlich.");
    8. System.exit(1);
    9. }
    10. String file = args[0];
    11. if(!file.endsWith(".mid")) {
    12. //helpAndExit();
    13. System.out.println("Der Übergabeparameter muss ein *.mid-File sein.");
    14. System.exit(1);
    15. }
    16. File midiFile = new File("C:\\Dokumente und Einstellungen\\matthias w\\Eigene Dateien\\tönetest\\");
    17. if(!midiFile.exists() || midiFile.isDirectory() || !midiFile.canRead()) {
    18. //helpAndExit();
    19. System.out.println("Das angegebene File existiert nicht.");
    20. System.exit(1);
    21. }
    22. try {
    23. Sequencer sequencer = MidiSystem.getSequencer();
    24. sequencer.setSequence(MidiSystem.getSequence(midiFile));
    25. sequencer.open();
    26. sequencer.start();
    27. while(sequencer.isRunning()) {
    28. try {
    29. Thread.sleep(1000);
    30. } catch(InterruptedException ignore) {
    31. break;
    32. }
    33. }
    34. sequencer.stop();
    35. sequencer.close();
    36. } catch(MidiUnavailableException mue) {
    37. System.out.println("Midi device unavailable!");
    38. } catch(InvalidMidiDataException imde) {
    39. System.out.println("Invalid Midi data!");
    40. } catch(IOException ioe) {
    41. System.out.println("I/O Error!");
    42. }
    43. }
    44. private static void helpAndExit() {
    45. System.out.println("Usage: java MidiPlayer midifile.mid");
    46. System.exit(1);
    47. }
    48. }
    Alles anzeigen


    was ich da eingebe beim star wäre gerade das: "C:\\Dokumente und Einstellungen\\matthias w\\Eigene Dateien\\tönetest\\faed_4.mid"
    Es ist gelogen,das PC Spiele die Jugendlichen beeinflußen.Hätte PACMAN das getan,würden wir Heute durch dunkle Räume irren,Pillen futtern und elektronische Musik hören!
  • Bei mir läuft nix schief. Das Programm läuft und den Quelltext habe ich hier gepostet.
    Ich möchte immer noch deine Konsolenausgabe (Das was du mit System.out.println(); ausgibst landet auf der Konsole!) sehen, den bei dir läuft doch was schief oder?

    Das:
    "C:\\Dokumente und Einstellungen\\matthias w\\Eigene Dateien\\tönetest\\faed_4.mid"

    wird nicht funktionieren, weil args ein Array ist.
    Deswegen habe ich ja in meiner Empfehlung die geschwungenen Klammern und die Anführungszeichen mit angegeben.
  • die klammern stehen ja schon da ich füg nur dazwischen ein.deswegen hab ich die nicht mit geschickt

    ich bekomme folgende meldung:
    Das angegebene File existiert nicht.


    Quellcode

    1. if(!midiFile.exists()) {
    2. System.out.println("Das angegebene File existiert nicht.");
    3. System.exit(1);
    4. }
    5. if(midiFile.isDirectory()) {
    6. System.out.println("Der Übergabeparameter verweist auf ein Verzeichnis anstatt auf ein File.");
    7. System.exit(1);
    8. }
    9. if(!midiFile.canRead()) {
    10. System.out.println("Es besteht kein Lesezugriff ");
    11. System.exit(1);
    12. }
    Alles anzeigen

    hab die fehlermeldung nochmal geändert
    Es ist gelogen,das PC Spiele die Jugendlichen beeinflußen.Hätte PACMAN das getan,würden wir Heute durch dunkle Räume irren,Pillen futtern und elektronische Musik hören!
  • Solange du
    File midiFile = new File("C:\\Dokumente und Einstellungen\\matthias w\\Eigene Dateien\\tönetest\\");

    und nicht
    File midiFile = new File(file);

    schreibst, wird es immer schief gehen, egal was du übergibst.

    Aber ich werde mich jetzt hier zurückziehen. Ich habe dir mehr als genug Möglichkeiten zur Fehlerdiagnose aufgezeigt. Lies die einfach noch einmal meine Posts durch und überlege warum ich das gesagt habe, dann kannst du das Problem auch selber finden und lösen.
  • ok
    danke für deine/eure hilfe.
    ich weiß es zu schätzen das ihr mir geholfen habt auch wenn ich schwer von begriff bin.
    werde nun weiter versuchen und hoffen das es klappt.

    thx nochmal^^
    Es ist gelogen,das PC Spiele die Jugendlichen beeinflußen.Hätte PACMAN das getan,würden wir Heute durch dunkle Räume irren,Pillen futtern und elektronische Musik hören!
  • es läuft!!!

    thx nochmal^^
    es war wirklich nur noch das was nicht stimmte-.-
    aber egal es läuft^^ und danke

    Hafner schrieb:


    File midiFile = new File("C:\\Dokumente und Einstellungen\\matthias w\\Eigene Dateien\\tönetest\\");


    File midiFile = new File(file);

    Es ist gelogen,das PC Spiele die Jugendlichen beeinflußen.Hätte PACMAN das getan,würden wir Heute durch dunkle Räume irren,Pillen futtern und elektronische Musik hören!