为什么applet没有播放音频片段?

时间:2016-05-20 14:35:47

标签: java applet

我有一个小程序应该在点击时发出声音,但它不起作用。如果有人能够指出代码的错误

,那将会非常有用
 AudioClip soundFile1; 
 AudioClip soundFile2;

 public void init()  
 {
      soundFile1 = getAudioClip(getDocumentBase(),"volcanoe.au"); 
      soundFile2 = getAudioClip(getDocumentBase(),"volcanoe.au");
      addMouseListener(this); 
      setBackground(Color.yellow); 
      soundFile1.play(); 
 }

 public void paint(Graphics g)  
 { 
      g.drawString("Click to hear a sound",20,20); 
 }
 public void mouseClicked(MouseEvent evt)  
 { 
      soundFile2.play(); 
 }
 public void mousePressed(MouseEvent evt) {} 
 public void mouseReleased(MouseEvent evt) {} 
 public void mouseEntered(MouseEvent evt) {} 
 public void mouseExited(MouseEvent evt) {} 

2 个答案:

答案 0 :(得分:1)

我在我的电脑上运行了你的代码,它运行得很好。存储在 soundFile1 中的音频剪辑在运行小程序时开始播放,单击鼠标时,已播放的音频停止, soundFile2 中的新音频剪辑开始播放。我使用 .wav .au 文件测试了该程序。您的案例中的问题可能是以下之一:

  1. applet的 .class 文件所在的目录中缺少音频文件。音频文件应该出现在您正在处理的当前项目的目录中。

  2. 当前目录中存在的 .au 文件有问题。使用其他文件格式(例如 .wav )或其他 .au 文件测试小程序。

  3. 计算机的音频编解码器出了问题。在互联网上查找以修复音频编解码器。

  4. 尝试重新安装JDK。正如@Tbtimber所述,请尝试使用getCodeBase()代替getDocumentBase()。如果可行,则更新/重新安装JDK。

答案 1 :(得分:0)

创建AudioClip时,请尝试使用getCodeBase()代替getDocumentBase()