Java AudioClip无法正常工作

时间:2013-06-04 12:16:37

标签: java audio applet

即使我的代码基于一个工作例子,我的wav声音也无法播放。我不知道哪里撒谎我的错误。我发现这个代码在互联网上例证:

import javax.swing.*;  
import java.awt.*;  
import java.awt.event.*;  
import java.applet.*;  
import java.io.*;  
class Testing extends JFrame implements ActionListener  
{  
  JButton btn = new JButton("Play Sound");  
  File wavFile = new File("c:\\Windows\\media\\ding.wav");  
  AudioClip sound;  
  public Testing()  
  {  
    setSize(300,100);  
    setLocation(400,300);  
    setDefaultCloseOperation(EXIT_ON_CLOSE);  
    JPanel jp = new JPanel();  
    btn.addActionListener(this);  
    jp.add(btn);  
    getContentPane().add(jp);  
    pack();  
    try{sound = Applet.newAudioClip(wavFile.toURL());}  
    catch(Exception e){e.printStackTrace();}  
  }  
  public void actionPerformed(ActionEvent ae){sound.play();}  
  public static void main(String args[]){new Testing().setVisible(true);}      
} 

工作正常。我创建了一个WavReader类,它将加载AudioClip声音。我的Button有一个WavReader属性。我想要做的是通过我的Button的MouseEnetered事件让WavReader声音播放。这是我的WavReader类:

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

public class WavReader {  

  File wavFile; 
  public AudioClip sound;  

  public WavReader(String file) {  

    wavFile = new File(file);

    try {
      sound = Applet.newAudioClip(wavFile.toURL());
    }  
    catch(Exception e) {
      e.printStackTrace();
    }

  }  


  public void playSound() {
  sound.play();

  }

  public void stopSound() {
     sound.stop();
  }

}  

以下是我的个性化按钮块:

public class ButtonMenu extends JButton{

  public ButtonMenu() {

    private WavReader reader = new WavReader("blabla.wav");

   addMouseListener(new MouseAdapter() {
 public void mouseEntered(MouseEvent e) {
   setForeground(Color.red);
   reader.playSound();
 }

      public void mouseExited(MouseEvent e) {     
       setForeground(Color.white);
          reader.stopSound();
        }
      }   // end MouseAdaptater
  );  // end MouseListener
 }

}

运行时没有错误,但我的声音不会播放。你能告诉我出错了吗?

我能看到的唯一区别是我的AudioClip属性不是任何JFrame的一部分,而是我的WavReader类的一部分,它是我的Button的一部分。

1 个答案:

答案 0 :(得分:0)

我不确定代码的外观但你导入了正确的库来播放音频吗?