Yuber

Seher

  • »Yuber« ist der Autor dieses Themas

Motto: Die Welt zu beherrschen.

  • Nachricht senden

1

Sonntag, 13. Juni 2010, 17:35

Musik wird nicht abgespielt

Hi!
Hab über Google mal geschaut wie man Musik abspielen kann und hab da was gefunden.
Aber wenn ich es dann abspielen will wird nur eine Fehlermeldung ausgeworfen. Mach ich etwas falsch oder liegt es am Programm?

Error:

Zitat


Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at himmelundhölle.SpielAnsicht.Musik(SpielAnsicht.java:243)
at himmelundhölle.SpielAnsicht.paintComponent(SpielAnsicht.java:140)
at javax.swing.JComponent.paint(JComponent.java:1022)
at javax.swing.JComponent.paintChildren(JComponent.java:859)
at javax.swing.JComponent.paint(JComponent.java:1031)
at javax.swing.JComponent.paintChildren(JComponent.java:859)
at javax.swing.JComponent.paint(JComponent.java:1031)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:564)
at javax.swing.JComponent.paintChildren(JComponent.java:859)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5111)
at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:285)
at javax.swing.RepaintManager.paint(RepaintManager.java:1132)
at javax.swing.JComponent.paint(JComponent.java:1008)
at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:21)
at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:60)
at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:97) at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:97)



Code:
[JAVA]
public class Musik {


Sequencer sequencer;

public void MusikStart() throws MidiUnavailableException, InvalidMidiDataException, IOException
{
File myMidiFile = new File("files/Musik/test.mid");
// Construct a Sequence object, and
// load it into my sequencer.
Sequence mySeq = MidiSystem.getSequence(myMidiFile);
sequencer.setSequence(mySeq);

sequencer.start();

}

}
[/JAVA]

Bei new File hab ich schon sämtliche Variationen ausprobiert.
Nur noch selten hier.

'Til now, I always let people walk all over me!
From now on, if anyone makes fun of me, I'll kill 'em! Just like that!

2

Sonntag, 13. Juni 2010, 17:57

Zitat

Bei new File hab ich schon sämtliche Variationen ausprobiert.

if(!myMidiFile.isFile())
throw Exception("files/Musik/test.mid nicht gefunden");
und du weißt obs daran liegt auch ohne sämtliche Versionen auszuprobieren. File wird nicht null, nur weil die Datei nicht existiert.

Wie auch immer, das Problem ist wohl eher das sequencer null ist, weil du dem Ding nie was zuweist

3

Montag, 14. Juni 2010, 17:42

Hallo,
wie Ankou sagt, man könnte nächstes mal auch sagen, welches dein Fehlerhafte Zeile ist ;)
Und wenn du mit file arbeitest, hilft immer isFile() getAbsolutePath() exists()/canRead()

In deinen Fall, denke ich aber mal, dass es ein zusammenkopierter Code ist, wovon du keinene Ahnung hast, denn sequencer wird nie inizialisert.

Probiere mal:
[java]
/**
* Plays a midi file
*
* @param file
*/
public static void play(final File file) {
// Argument check
if (file == null || !file.exists() || !file.isFile() || !file.canRead())
throw new InvalidParameterException("Soundfile " + file + " not found.");
// Play once
new Thread(new Runnable() {

@Override public void run() {
try {
//start
final Sequencer sequencer = MidiSystem.getSequencer();
sequencer.setSequence(MidiSystem.getSequence(file));
sequencer.open();
sequencer.start();
while (true)
if (sequencer.isRunning())
try {
Thread.sleep(1000); // Check every second
} catch (final InterruptedException ignore) {
break;
}
else
break;
// Close the MidiDevice & free resources
sequencer.stop();
sequencer.close();
} catch (final Throwable t) {
throw new IllegalStateException(t);
}

}
}).start();

}[/java]
bzw. tausche bei dir mySeq durch sequencer aus.

Grüße Steve
:information: YAams
:rainbow: Random Signatur
Bild





Weitere Informationen | Download
Mit Support für RGSS Project 1!
Bild

Ähnliche Themen

Social Bookmarks