Sound einfügen

UbuLin

Mitglied
Hallo zusammen,
Ich habe vor einem halben Jahr angefangen Java zu programmieren und dabei habe ich schon einige halb, oder ganz fertige Spiele entwickelt. Eins fehlte jedoch immer und zwar der Sound(Soundeffeckte, Hintergrundmusik, ...). Habe schon versucht im Internet nach einer lösung zu suchen. Hat immer fast funktioniert, aber es kam dann doch die ein oder andere Fehlermeldung. Kann mir vielleicht jemand ein CodeBeispiel geben. Am besten in meinem TestCode.
TestCode: Main
Java:
// Package
package testsound;

// Imports
import java.awt.event.ActionEvent;
import javax.swing.JButton;
import javax.swing.JFrame;

// TestSound Klasse (Hauptklasse)
public class TestSound extends JFrame {
   
    // Variablen
    private JFrame f;
    private JButton sound;
   
    static boolean playSound = false;
   
    // Konstruktor TestSound
    public TestSound() {
       
        // Hier wird das Frame erstellt
        f = new JFrame("TestSounds");
        f.setLayout(null);
        f.setSize(500, 500);
        f.setLocationRelativeTo(null);
        f.setResizable(false);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        ///////////////////////////////////////////////////////////////
        // Hier wird der Button erstellt
        sound = new JButton("Hier kommt ein Sound");
        sound.setBounds((500 - 200) / 2, (500 - 60) / 2, 200, 60);
        sound.addActionListener((ActionEvent e) -> {
            if(e.getSource() == sound) {
                playSound = true;
                System.out.println("Button wurde Gedrückt");
            }
        });
        sound.setVisible(true);
        // Hier hinzugefügt
        f.add(sound);
        //////////////////////////////////////////////////////////////
        f.setVisible(true);
       
    }

    // Hauptmethode
    public static void main(String[] args) {
       
        // Hier werden die Klassen angegeben
        new Sound();
        new TestSound();

    }
   
}

TestCode Sound:
Java:
// Package
package testsound;

// Imports
import java.io.File;

// Klasse Sound
public class Sound {
   
    // Anhand dierser File soll die .wav Datei geladen werden
    static File soundFile = new File("rsc/timeBomb.wav");
   
    // Konstruktor Sound
    public Sound() {
       
    }
   
}

Mein Ziel ist im Prinzip das wenn man auf den Button drückt eine .wav Datei abgespielt wird.
Kann jemand von euch eventuel in der Sond Klasse einen Code für mich einfügen.
Die Sound Datei soll mit der File soundFile geladen werden.

Hoffe ich habe alles gut Auskommentiert, freue mich auf jede hilfreiche Antwort

Lg UbuLin
 

Sogomn

Bekanntes Mitglied
Es gibt mehrere Wege dafür.
Am einfachsten ist es wahrscheinlich, sich einen Clip aus dem AudioSystem zu holen, einen Sound per AudioInputStream zu laden, und den Clip zu starten.
Code:
final Clip clip = AudioSystem.getClip();
final AudioInputStream in = AudioSystem.getAudioInputStream(myFile);

clip.open(in);
clip.start();
 

UbuLin

Mitglied
Erstmal vielen Dank für die schnelle Antwort,

Es hat super funktioniert wenn der Button gedrückt wird wird die clip.start() Methode aufgerufen.
Jedoch wenn ich den Button zweimal drücke kommt kein Sound mehr.
Ich habe schonmal irgendwas von clip.loop oder so etwa gehört.
Kriegt man es irgendwie hin den Sound so oft wie man will abzuspielen ?

Lg UbuLin
 

JStein52

Top Contributor
Ich weiss nicht wie AudioSystem arbeitet und wie du es genau bei dir eingebaut hast. Aber kann es sein dass du das abspielen selber in einem Swing-Worker machen musst der einen Schalter bereitstellt der angibt ob er gerade einen Sound abspielt und den du dann im ActionListener abfragst ?
 

Sogomn

Bekanntes Mitglied
@UbuLin Das liegt daran, dass die Position vom Clip nach dem Abspielen ganz am Ende ist.
Du könntest z.B.
Code:
myClip.setFramePosition(0);
aufrufen und den Clip erneut abspielen.

Natürlich könntest Du auch einen neuen Clip erzeugen. Dann solltest Du aber in betracht ziehen, den AudioInputStream manuell zu lesen und die Bytes zu speichern, damit Du die Datei nicht jedes mal wieder lesen musst.
Dann bräuchtest Du die andere Methode "open" aufrufen.
 

UbuLin

Mitglied
Das mit dem
myClip.setFramePosition(0);
hat super funktioniert.

Gibt es irgendetwas das überprüft ob der Sound fertig abgespielt wurde?
 

Sogomn

Bekanntes Mitglied
Naja, es gibt eine Methode Clip#getFrameLength und eine Methode Clip#getFramePosition.
Wenn Du die beiden nun vergleichst... ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Pinhg Sound in Greenfoot Code einbinden Java Basics - Anfänger-Themen 2
SpigBin Sound einbinden bei Funktionsaufruf Java Basics - Anfänger-Themen 4
R MediaPlayer: Sound hat Verzögerung Java Basics - Anfänger-Themen 2
Dann07 Sound wird nicht abgespielt Java Basics - Anfänger-Themen 25
B Eclipse spielt Sound nicht ab Java Basics - Anfänger-Themen 12
CptK Erste Schritte Sound-Datei einbinden Java Basics - Anfänger-Themen 2
R Sound abspielen Java Basics - Anfänger-Themen 9
N kein Sound beim Öffnen der jar-Datei, in Eclipse schon Java Basics - Anfänger-Themen 1
S Sound stoppen und nach Pause wieder abspielen Java Basics - Anfänger-Themen 6
Anfänger2011 Input/Output Sound abspielen - ICH VERZWEIFLE!!!! Java Basics - Anfänger-Themen 24
K Sound speichern Java Basics - Anfänger-Themen 3
J Sound-Wiedergabe Java Basics - Anfänger-Themen 6
P Java Sound midi Java Basics - Anfänger-Themen 3
D Sound abspielen, wo muss die .wav liegen Java Basics - Anfänger-Themen 3
R Erste Schritte Exception bei erstellen von Java Sound Java Basics - Anfänger-Themen 23
2 Input/Output Sound aufnehmen/abspielen? Java Basics - Anfänger-Themen 2
SheldoN Sound abspielen nach Buttonklick in Applets Java Basics - Anfänger-Themen 17
J WAVE-file mit Java Sound erstellen Java Basics - Anfänger-Themen 9
V Sound wird nicht abgspielt Java Basics - Anfänger-Themen 8
F sound nur abspielen, wenn er nicht läuft Java Basics - Anfänger-Themen 6
B Sound-Wiedergabe Java Basics - Anfänger-Themen 4
F Spiel geht nicht mehr nach neuer Klasse Sound Java Basics - Anfänger-Themen 18
S kein sound? Java Basics - Anfänger-Themen 3
A Jlayer: Wie sound stoppen der in einem Thread läuft Java Basics - Anfänger-Themen 7
M Kein Sound in der .jar, davor schon Java Basics - Anfänger-Themen 6
M sound abspielen Java Basics - Anfänger-Themen 3
C Wav-Sound nur unter Window Java Basics - Anfänger-Themen 5
C Sound abspielen Java Basics - Anfänger-Themen 6
R Problem mit Sound Java Basics - Anfänger-Themen 5
R Sound Problem Java Basics - Anfänger-Themen 25
P Sound in Applikation (nicht Applet) Java Basics - Anfänger-Themen 5
Developer_X Java can't play mid sound? Java Basics - Anfänger-Themen 16
K kein Sound beim Öffnen der jar-Datei, in Eclipse schon Java Basics - Anfänger-Themen 2
X Benutzung von Mixer (Sound, nicht Küche!) Java Basics - Anfänger-Themen 2
V Serialisieren einer ShortMessage (javax.sound.midi) Java Basics - Anfänger-Themen 5
S Java Sound mit 24 bit/96 kHz Audio? Java Basics - Anfänger-Themen 12
0 Problem mit Bild und Sound im Applet Java Basics - Anfänger-Themen 12
D Sound in Frames möglich? EDIT Class Clip Java Basics - Anfänger-Themen 5
K Sound stoppt nicht Java Basics - Anfänger-Themen 3
M Sound Abspielen Java Basics - Anfänger-Themen 9
N Java Sound - Unsupported control type Java Basics - Anfänger-Themen 2
F Sound Interface Richtig implementieren Java Basics - Anfänger-Themen 4
G Sound/Endlosschleife/Abbruchproblem Java Basics - Anfänger-Themen 3
B Wo finde ich die Klasse javax.sound.sampled.AudioSystem Java Basics - Anfänger-Themen 7
R Sound wird im Applet nicht abgespielt Java Basics - Anfänger-Themen 13
G Sound bei buttonklick abspielen Java Basics - Anfänger-Themen 7
B Sound einbinden und abspielen Java Basics - Anfänger-Themen 9
D .wav Sound in einer simplen Applikation abspielen Java Basics - Anfänger-Themen 3
K Java Sound Application Java Basics - Anfänger-Themen 2
G Sound einbinden Java Basics - Anfänger-Themen 2
G sound in applikation Java Basics - Anfänger-Themen 7
G Sound Java Basics - Anfänger-Themen 13
megachucky wo gibts icons, images und sound dateien zum download? Java Basics - Anfänger-Themen 2
Hilde22 Neu Start JButton einfügen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
melaniemueller setCharAt Leerzeichen zusätzlich einfügen Java Basics - Anfänger-Themen 8
S Algorithmus Datensätze einfügen wenn... Java Basics - Anfänger-Themen 26
E In Array Werte einfügen? Java Basics - Anfänger-Themen 5
districon Element in Liste einfügen Java Basics - Anfänger-Themen 1
Y Einfügen in eine doppelt verkettete Liste Java Basics - Anfänger-Themen 8
Gaudimagspam Attribute einfügen private Java Basics - Anfänger-Themen 3
marcooooo Separator zwischen allen Zeichen eines Strings einfügen Java Basics - Anfänger-Themen 29
R Inventar und Items auf ein 2D ArrayFeld einfügen Java Basics - Anfänger-Themen 2
S Bild einfügen // NEU Java Basics - Anfänger-Themen 12
S Datenbank Tabelle eine Zeile an einer bestimmten Stelle einfügen Java Basics - Anfänger-Themen 2
V_Fynn03 Erste Schritte Einen Wert in ein TextField einfügen aus einer anderen Klasse Java Basics - Anfänger-Themen 3
E Datentypen Einfügen von Objekten in eine Map Java Basics - Anfänger-Themen 2
O Naives links rechts einfügen in ADT Baum Java Basics - Anfänger-Themen 8
O BinärBaum einfügen Java Basics - Anfänger-Themen 13
M Sqlite table löschen und daten einfügen Java Basics - Anfänger-Themen 5
M Erste Schritte Mit Variable verschiedene Texte in Textfeld einfügen Java Basics - Anfänger-Themen 27
M Klasse in JTable einfügen Java Basics - Anfänger-Themen 7
J In einer Klasse ein AlertDialog einfügen Java Basics - Anfänger-Themen 4
S Elemente in Liste einfügen Java Basics - Anfänger-Themen 2
S Interface (WindowBuilder) Panels in einen Frame einfügen Java Basics - Anfänger-Themen 10
x-tshainge Java Bilder einfügen Java Basics - Anfänger-Themen 1
T Variablen “ in String einfügen Java Basics - Anfänger-Themen 1
Orkanson Objekte in ein Array einfügen Java Basics - Anfänger-Themen 5
S Doppelte Liste Einfügen Java Basics - Anfänger-Themen 1
X Objekte in ArrayList einfügen Java Basics - Anfänger-Themen 10
jaleda100 JTextArea Zeile einfügen Java Basics - Anfänger-Themen 1
R Spielfeldbegrenzung einfügen (Java)? Brauche Hilfe! Java Basics - Anfänger-Themen 15
D B-Baum einfügen und löschen Java Basics - Anfänger-Themen 2
S Einfach verkettete Liste Element an bestimmter Position einfügen Java Basics - Anfänger-Themen 24
JavaNewbie2.0 Tausende Wörter in Arrays automatisch einfügen Java Basics - Anfänger-Themen 10
J Wie kann ich Images per Tastendruck anzeigen/einfügen? Java Basics - Anfänger-Themen 3
F In LinkedList einen Wert ersetzen oder neu einfügen Java Basics - Anfänger-Themen 7
C Verkettete Liste - sortiert einfügen Java Basics - Anfänger-Themen 7
J Scroll-Leiste einfügen Java Basics - Anfänger-Themen 12
P String zerstückeln und in Excel einfügen Java Basics - Anfänger-Themen 11
J Objecte in TreeSet einfügen klappt nicht Java Basics - Anfänger-Themen 5
P Variablen Wie kann ich eine lokale Variable in eine andere Methode einfügen? Java Basics - Anfänger-Themen 27
S Bild einfügen Java Basics - Anfänger-Themen 16
D Taschenrechnerereignisse einfügen Java Basics - Anfänger-Themen 18
B Vererbung In offener Hash Tabelle einfügen Java Basics - Anfänger-Themen 4
W Listenelement einfügen Java Basics - Anfänger-Themen 9
P OOP Eingabevariablen der Klasse Raum in der Methode addEvent ans Ende einer ArrayList einfügen Java Basics - Anfänger-Themen 3
8 Eigenes Bild in email einfügen Java Basics - Anfänger-Themen 1
D Datenbankzugriff - Leere Zeile einfügen Java Basics - Anfänger-Themen 2
GadgetSofa IOException fehlt aber wo einfügen? Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben