sound mit java



  • hallo ,
    ich habe folgendes problem ich programmier ein spiel!!
    in dem spiel soll eine hintergrund musik laufen! wenn ich eine aktion mit spieler durhcführe soll ein aktions musik abgespielt werden nur einmal dan soll er aufhören die hintergrundmusik soll aber weiterllaufen .aber beim mir ist aktion in einer unentlich schleife !!
    eine musik datei soll nur einmal abgespielt werden ??

    import java.io.File;
    import java.io.IOException;
    import javax.sound.midi.*;

    public class MidiMusik
    implements iSound
    {

    public MidiMusik(String file)
    {
    init(file);
    }

    public void init(String file)
    {// hier wird die hintergrund musik initialisiert
    try
    {
    sequence = MidiSystem.getSequence(new File(file));
    sequencer = MidiSystem.getSequencer();
    sequencer.open();
    sequencer.setLoopCount(-1);
    sequencer.setSequence(sequence);
    }
    catch(IOException ioexception) { }
    catch(MidiUnavailableException midiunavailableexception) { }
    catch(InvalidMidiDataException invalidmididataexception) { }
    }

    public void stop()
    {
    sequencer.stop();
    }

    public void play()
    {
    sequencer.start();
    }

    public void replay()
    {
    sequencer.stop();
    sequencer.start();
    }

    public void stopaktion()
    {
    sequenceraktion.stop();
    }

    public void playaktion()
    {
    sequenceraktion.start();

    }

    // hier werden die aktionen durchgeführt
    public void aktion(String file)
    {

    try
    {

    sequenceaktion = MidiSystem.getSequence(new File(file));
    sequenceraktion = MidiSystem.getSequencer();
    sequenceraktion.open();
    sequenceraktion.setLoopCount(-1);
    sequenceraktion.setSequence(sequenceaktion);
    }
    catch(IOException ioexception) { }
    catch(MidiUnavailableException midiunavailableexception) { }
    catch(InvalidMidiDataException invalidmididataexception) { }

    }

    Sequence sequence,sequenceaktion;
    Sequencer sequencer,sequenceraktion;
    }



  • sequenceraktion.setLoopCount(-1);
    Vielleicht nicht -1 sondern 1?


Anmelden zum Antworten