Soundsamples schnell hintereinander abspielen

Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Hi Leute,

ich habe folgendes Problem das ich seit Tagen nicht lösen kann:

Es geht um das Abspielen von .wav Dateien. Dies funktioniert zwar schon recht gut, allerdings
wenn ich ein Sample schnell hintereinander abspiele (z.B. bei jedem Mausklick soll eine(die selbe) .wav Datei abgespielt
werden) funktioniert dies nicht. Das Sample kann nur im Abstand von ca. 1 Sekunde abgespielt werden.

Ich hoffe ihr könnt mir helfen.

Hier ist der Code zum Laden der Datei und zum Abspielen:

Code:
private void loadClip(String pFileName) {
		try {
			//Verknüpfen des Audio-Streams mit der Clip Datei
			stream = AudioSystem.getAudioInputStream(getClass().getResource(pFileName));
			
			//Ermittle Format des Streams
			AudioFormat format = stream.getFormat();
			
			//Konvertiere ULAW/ALAW Format ins PCM format
			if((format.getEncoding() == AudioFormat.Encoding.ULAW) ||
			   (format.getEncoding() == AudioFormat.Encoding.ALAW)) {
				
				//Lege neues PCM-Format an
				AudioFormat newFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED,
														 format.getSampleRate(),
														 format.getSampleSizeInBits()*2,	
														 format.getChannels(),
														 format.getFrameSize()*2,		
														 format.getFrameRate(),true);		
				
				//Setzte das neue Format
				stream = AudioSystem.getAudioInputStream(newFormat, stream);
				LoggerAccess.getActiveLogger().writeInfo("Konvertiertes Audioformat:" + newFormat);
				format = newFormat;
			}
			
			//Sammle Information für die DataLine
			DataLine.Info info = new DataLine.Info(Clip.class, format);
			
			//Sound-System muss die Data-Line unterstützen
			if(!AudioSystem.isLineSupported(info)) {
				LoggerAccess.getActiveLogger().writeWarning("");
				return;
			}
			
			//Hole die Line-Resource des Clips
			clip = (Clip) AudioSystem.getLine(info);
			
			//Lausche auf Clip-Events
			clip.addLineListener(this);
			
			//Öffne die Sound-Datei als einen Clip
			clip.open(stream);
			
			//Stream wird nicht mehr benötigt
			stream.close();
			
			//Überprüfe die Länge des Clips (< 1sec kann zu Problemen führen)
			checkDuration();
		
		} catch (UnsupportedAudioFileException ae) {
			LoggerAccess.getActiveLogger().writeError(fileName + " - Datei wird nicht unterstützt!");
		} catch (LineUnavailableException ne) {
			LoggerAccess.getActiveLogger().writeError("Keine Audio-Line für " + fileName + "vorhanden!");
		} catch (IOException ie) {
			LoggerAccess.getActiveLogger().writeError(fileName + " konnte nicht gelesen werden!");
		} catch (Exception e) {
			LoggerAccess.getActiveLogger().writeError(fileName + " - Es ist ein Fehler aufgetreten!");
		}
		
	}
	



//Spiele Clip ab
	public void play(boolean toLoop) {
		if(clip != null) {
			isLooping = toLoop;
			clip.start();
		}
	}
 
G

Gast

Gast
Der Code funktioniert, allerdings wenn ich ein Sample zwei mal schnell hintereinander abspielen will, so hört man nur das es einmal abgespielt wird, der Rest wird irgendwie unterdrückt.

Hoffe das war versändlich erklärt. Vielleicht gibt es ja ne andere Methode .wav Dateien abzuspielen, ohne das beschriebene Problem
 
G

Gast

Gast
Sorry, aber danke für den Tipp , es hat jetzt endlich funktioniert!!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Einfache Navigations-App schnell selber Programmieren? Bitte um Ideen und Anregungen. Allgemeine Java-Themen 17
K Große JSON-Dateien schnell und effizient verarbeiten Allgemeine Java-Themen 16
T Collections Liste schnell/nebenläufig durchgehen Allgemeine Java-Themen 2
S Schnell eine fortlaufende nummer erzeugen SQL, kein Primkey Allgemeine Java-Themen 8
M Bilderstapel schnell durchschalten? Speicherprobleme. Allgemeine Java-Themen 3
A Möglichkeiten, ein Bild schnell auszuwerten Allgemeine Java-Themen 56
parite.b schnell frage ;) API CONTENTS ? Allgemeine Java-Themen 5
E brauche schnell Ausführbare Datei Allgemeine Java-Themen 4
G ganzzahlige Potenz schnell berechnen Allgemeine Java-Themen 4
T Serialisierung: Wie macht RMI das so schnell? Allgemeine Java-Themen 14
G schnell Strings vergleichen Allgemeine Java-Themen 4
G Datenbank-Anwendung schnell erstellen. Allgemeine Java-Themen 7
J Datei Inhalt vergleichen (schnell & effizient!) Allgemeine Java-Themen 10
M Schnell kleine Hilfe gesucht! Allgemeine Java-Themen 3
C Daten möglichst schnell einem Baum zuordnen Allgemeine Java-Themen 2
M 2-dimensionalen array schnell kopieren Allgemeine Java-Themen 6
T Bilder schnell in BufferedImage laden Allgemeine Java-Themen 4
A mein Frame wird nicht schnell genung aktualisiert Allgemeine Java-Themen 7
F Große Dateien schnell einlesen Allgemeine Java-Themen 14
R xx.xx.xx <-nur /w & /. aber !2x '.' hintereinander Allgemeine Java-Themen 6
B Vermeiden das JButton schneller hintereinander drücken Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben