Java Wav-Datei-Fehler (javax.sound.beprobt.UnsupportedAudioFileException: could not get audio input stream from input file)

Habe ich zwei Kurse in meinem Java-Projekt ist

Rebound

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Rebound
{

   public static void main (String[] args)
   {
      JFrame frame = new JFrame ("Rebound");
      frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);

      frame.getContentPane().add(new ReboundPanel());
      frame.pack();
      frame.setVisible(true);
   }
}

und die zweite ist ReboundPanel

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.sound.sampled.*;
import java.io.File;
import java.io.IOException;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.SourceDataLine;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.LineEvent;
import javax.sound.sampled.LineListener;

public class ReboundPanel extends JPanel
{
   private final int WIDTH = 600, HEIGHT = 300;
   private final int DELAY = 20, IMAGE_SIZE = 35;

   private ImageIcon image1, image2, image3;
   private Timer timer;
   private int x1, y1, moveX1, moveY1, x2, y2, moveX2, moveY2, x3, y3;
   Clip clip;
   DataLine.Info info;

   public ReboundPanel() throws Exception
   {
      timer = new Timer(DELAY, new ReboundListener());
      image1 = new ImageIcon ("happyFace1.gif");
      image2 = new ImageIcon ("happyFace2.gif");


      x1 = 0;
      y1 = 100;
      x2 = 40;
      y2 = 0;
      moveX1 = moveY1 = 3;
      moveX2 = moveY2 = 5;
      setPreferredSize (new Dimension(WIDTH, HEIGHT));
      setBackground (Color.black);
      timer.start();

      image3 = new ImageIcon ("fire.gif");
      File soundFile = new File("explosion.wav");
      AudioInputStream sound = AudioSystem.getAudioInputStream(soundFile);
      DataLine.Info info = new DataLine.Info (Clip.class, sound.getFormat());
      clip = (Clip) AudioSystem.getLine(info);
      clip.open(sound);
      clip.start();
   }
   public void paintComponent (Graphics page)
   {
      super.paintComponent (page);
      image1.paintIcon (this, page, x1, y1);
      image2.paintIcon (this, page, x2, y2);
      image3.paintIcon (this, page, x2, y2);
   }
   private class ReboundListener implements ActionListener
   {

      public void actionPerformed (ActionEvent event)
      {
         x1 += moveX1;
         y1 += moveY1;
         x2 += moveX2;
         y2 += moveY2;
         if (x1 <= 0 || x1 >= WIDTH-IMAGE_SIZE)
            moveX1 = moveX1 * -1;

         if (y1 <= 0 || y1 >= HEIGHT-IMAGE_SIZE)
            moveY1 = moveY1 * -1;

         if (x2 <= 0 || x2 >= WIDTH-IMAGE_SIZE)
            moveX2 = moveX2 * -1;

         if (y2 <= 0 || y2 >= HEIGHT-IMAGE_SIZE)
            moveY2 = moveY2 * -1;

         if (Math.abs(y1-y2) <= IMAGE_SIZE-2 && Math.abs(x1-x2)<= IMAGE_SIZE-2)
            {
                moveY2 = moveY2 * -1;
                moveX2 = moveX2 * -1;
                moveY1 = moveY1 * -1;
                moveX1 = moveX1 * -1;
                x3=x2;
                y3=y2-2*IMAGE_SIZE;
                clip.loop(Clip.LOOP_CONTINUOUSLY);

            }
         if (Math.abs(y1-y2) >= 4*IMAGE_SIZE && Math.abs(x1-x2) >= 4*IMAGE_SIZE)
           {
               x3=-200;
               y3=-200;
               if (clip.isRunning()) clip.stop();
           }
         repaint();
      }
   }
}

Wenn ich versuche das Programm auszuführen, bekomme ich folgende Fehlermeldung

javax.sound.sampled.UnsupportedAudioFileException: could not get audio input stream from input file
    at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1187)
    at ReboundPanel.<init>(ReboundPanel.java:47)
    at Rebound.main(Rebound.java:21)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at ReboundPanel$ReboundListener.actionPerformed(ReboundPanel.java:99)
    at javax.swing.Timer.fireActionPerformed(Timer.java:312)
    at javax.swing.Timer$DoPostEvent.run(Timer.java:244)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:721)
    at java.awt.EventQueue.access$200(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:682)
    at java.awt.EventQueue$3.run(EventQueue.java:680)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:691)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)

Laut meinen Code, mein Ziel ist es, zwei zufriedene Gesichter bewegen sich im Rahmen und wenn Sie beide kollidieren sound zusammen mit dem Bild von Feuer/explosion sollte zeigen, und verschwinden

Bitte helfen ich habe, um zu zeigen, dieses Projekt zu meinem Lehrer...

Tut explosion.wav tatsächlich existieren in dem Verzeichnis, führen Sie den code aus? Ist es ein Gültiger wav - Datei?
Eine einfache Suche hat mir diesen link: stackoverflow.com/questions/11104118/...
ja, es existiert in dem Verzeichnis

InformationsquelleAutor user1991965 | 2013-02-18

Schreibe einen Kommentar