Sehr kleine wav Dateien, bis zu 20KB,werden nicht abgespielt

Status
Nicht offen für weitere Antworten.
K

Klausi

Gast
Hallo,

ich habe jetzt eine Weile herumprobiert und weiß nicht mehr weiter, auch weil der Fehler so komisch ist. Ich kann keine wav Dateien einmal abspielen mit play, aber mit loop geht es ???:L

Anleitung zu dem Problem:
Unter http://fivedots.coe.psu.ac.th/~ad/jg/ch05/ch5.zip sind die Audio-Dateien.
Wählt man nun zuerst dog.wav aus und drückt auf 'play', wird es nicht abgespielt. Spielt man aber zuerst mcdonald ab, dann geht danach auch dog.wav mit 'play'. Das wiederholte abspielen von dog.wav ('loop') geht immer :bahnhof:

Wie gesagt habe ich ein bisschen rumprobiert und bei einer ungefähr 30KB großen Datei ging es mit diesem Beispiel (auch zu finden unter obiger URL chicken.wav). Vielleicht weiß von euch jemand weiter? :shock:

Code:
/*
 * SoundPlayer.java
 *
 * Created on 30. März 2005, 11:07
 */

package killer_game_programming.chapter5;

import java.applet.AudioClip;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.HashMap;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

/**
 *
 * @author Klausi
 */

public class SoundPlayer extends JFrame implements ActionListener {
    
    private final static String SOUND_DIR = "Sounds/";
    
    private final static String[] soundFNms = {
        "spacemusic.au",
                "tiger.aiff",
                "mcdonald.mid",
                "dog.wav"
    };
    
    
    private HashMap<String, AudioClip> soundsMap;
    private ArrayList<AudioClip> playingClips;
    
    private JComboBox playListJcb;
    private JButton playButton, loopButton, stopButton;
    private JLabel statusLabel;
    
    /** Creates a new instance of SoundPlayer */
    public SoundPlayer() {
        super("Sound Application");
        
        playingClips = new ArrayList();
        initGUI();
        loadSounds();
        
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(new Dimension(400, 100));
        setResizable(false);    // fixed size display
        show();
    }
    
    private void initGUI()
  /* Create a combox listing the AudioClips, and the "Play",
     "Loop", and "Stop" buttons. */
    {
        Container c = getContentPane();
        c.setLayout(new BorderLayout());
        
        playListJcb = new JComboBox(soundFNms);
        
        playButton = new JButton("Play");
        playButton.addActionListener(this);
        
        loopButton = new JButton("Loop");
        loopButton.addActionListener(this);
        
        stopButton = new JButton("Stop");
        stopButton.addActionListener(this);
        
        statusLabel = new JLabel("Click Play or Loop to play the selected sound file.");
        
        JPanel controlPanel = new JPanel();
        controlPanel.add(playListJcb);
        controlPanel.add(playButton);
        controlPanel.add(loopButton);
        controlPanel.add(stopButton);
        
        JPanel statusPanel = new JPanel();
        statusPanel.add(statusLabel);
        
        c.add(controlPanel, BorderLayout.CENTER);
        c.add(statusPanel, BorderLayout.SOUTH);
    }
    
    private void loadSounds() {
        soundsMap = new HashMap();
        for (int i = 0; i < soundFNms.length; i++) {
            AudioClip clip = Applet.newAudioClip(getClass().getResource(SOUND_DIR + soundFNms[i]));
            
            if (clip == null) {
                System.out.println("Problem loading " + SOUND_DIR + soundFNms[i]);
            } else {
                soundsMap.put(soundFNms[i], clip);
            }
        }
    }
    
    private void playMusic(boolean toLoop) {
        String chosenFile = (String) playListJcb.getSelectedItem();
        
        //try to get the AudioClip
        AudioClip audioClip = soundsMap.get(chosenFile);
        if (audioClip == null) {
            statusLabel.setText("Sound " + chosenFile + " not loaded");
            return;
        }
        
        if (toLoop) {
            audioClip.loop();
        } else {
            audioClip.play();
        }
        
        playingClips.add(audioClip);
        String times = (toLoop) ? " repeatedly" : " once";
        statusLabel.setText("Playing sound " + chosenFile + times);
    }
    
    private void stopMusic() {
        if (playingClips.isEmpty()) {
            statusLabel.setText("Nothing to stop");
        } else {
            AudioClip audioClip;
            for (int i = 0; i < playingClips.size(); i++) {
                audioClip = playingClips.get(i);
                audioClip.stop();
            }
            playingClips.clear();
            statusLabel.setText("Stopped all music");
        }
    }
    
    public void actionPerformed(ActionEvent e) {
        Object source = e.getSource();
        if (source == playButton)
            playMusic(false);    // false means not looping
        else if (source == loopButton)
            playMusic(true);     // start looping play
        else if (source == stopButton)
            stopMusic();
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        new SoundPlayer();
    }
    
}
 
K

Klausi

Gast
Natürlich sollte die Überschrift heißen abgespielt, also bitte keine dummen Scherze darüber, ich habe mich nur vertippt :(
Illuvatar: Habs geändert ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Dringend: Sehr kompliziertes Applet Problem Tools - Maven, Gradle, Ant & mehr 4
K Parameterübergabe sehr langsam Tools - Maven, Gradle, Ant & mehr 4
C 3 "kleine" Probleme zu meinem Applet Tools - Maven, Gradle, Ant & mehr 11
M Maven (Java EE, WAR) Eigener Buildschritt - Manipulation von Dateien Tools - Maven, Gradle, Ant & mehr 4
J Wie Jar-Dateien in NetBeans erstellen? Tools - Maven, Gradle, Ant & mehr 4
B Subversion Eclipse Dateien mit Fragezeichen Tools - Maven, Gradle, Ant & mehr 2
B Ant Schleifen mit Dateien als Parameter Tools - Maven, Gradle, Ant & mehr 2
E Ant Beim zusammenfassen von CSV-Dateien nur bestimmt spalten auswählen Tools - Maven, Gradle, Ant & mehr 27
F Ant ANT javac class-Dateien von entfernten JAVA-Klassen löschen Tools - Maven, Gradle, Ant & mehr 11
N Ausführbare Dateien aus jar-Dateien verwenden Tools - Maven, Gradle, Ant & mehr 2
P Maven2 - wie mache ich externe Jar Dateien zu Artifacts? Tools - Maven, Gradle, Ant & mehr 15
B Maven: file.separator und properties-Dateien Tools - Maven, Gradle, Ant & mehr 8
F Kleines Java-Programm geschrieben, 30 Dateien? Tools - Maven, Gradle, Ant & mehr 16
D Ant: unzip; alle Dateien mit *.zip im Verzeichnis entpacken Tools - Maven, Gradle, Ant & mehr 1
D WebStart Caching kleinere Dateien aufm Client ? Tools - Maven, Gradle, Ant & mehr 7
S Sonderzeichen in class dateien? Tools - Maven, Gradle, Ant & mehr 4
J Externe Dateien im jar File Tools - Maven, Gradle, Ant & mehr 4
I Fehler beim Signieren der JAR Dateien für Webstart Tools - Maven, Gradle, Ant & mehr 1
G Mehrer Dateien auswählen mit JFileChooser Tools - Maven, Gradle, Ant & mehr 6
P Applet - WAV-Dateien werden nicht abgespielt Tools - Maven, Gradle, Ant & mehr 6
V Ogg Sound dateien mit Java abspielen? Tools - Maven, Gradle, Ant & mehr 8
A mehrere class.dateien Tools - Maven, Gradle, Ant & mehr 10
B Dateien per POST Request an PHP Script senden Tools - Maven, Gradle, Ant & mehr 2
L URL Dateien lesen Tools - Maven, Gradle, Ant & mehr 4
S Dateien laden ? Tools - Maven, Gradle, Ant & mehr 2
J Dateien auf einen anderen Rechner bekommen Tools - Maven, Gradle, Ant & mehr 8
J Editor für ".class"-Dateien? Tools - Maven, Gradle, Ant & mehr 3
8 Applet -> PHP = Dateien schreiben Tools - Maven, Gradle, Ant & mehr 17
Z Mit JFileChooser per Applet Dateien auf dem Server auswählen Tools - Maven, Gradle, Ant & mehr 4
K TXT Dateien vom Server/Host lesen und schreiben.WIE? Tools - Maven, Gradle, Ant & mehr 6
M Dateien mit Applet schreiben/lesen (lokal) Tools - Maven, Gradle, Ant & mehr 3
S Sound/Midi Dateien erst komplett laden Tools - Maven, Gradle, Ant & mehr 12

Ähnliche Java Themen

Neue Themen


Oben