• Login

Dear visitor, welcome to RPG Studio - Make your World real. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

Yuber

Seher

  • "Yuber" started this thread

Motto: Die Welt zu beherrschen.

  • Send private message

1

Sunday, June 13th 2010, 5:35pm

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:

Quoted


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

Sunday, June 13th 2010, 5:57pm

Quoted

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

Monday, June 14th 2010, 5:42pm

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

Social bookmarks