Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java音频剪辑-无声音,无错误_Java_Audio_Applet - Fatal编程技术网

Java音频剪辑-无声音,无错误

Java音频剪辑-无声音,无错误,java,audio,applet,Java,Audio,Applet,我已经阅读了关于java AudioClip的前几期文章并做了研究,但我仍然不明白为什么会这样 音频剪辑不能播放。.wav片段在EclipseIDE中运行良好,它也位于适当的目录中;如果文件 在不正确的目录中,此代码段将抛出错误消息 我的教授要求我们也使用这种格式播放音频剪辑,audioClip=Applet.newAudioClip(新文件(filePath.toURI().toul()) 执行时,会调用底部的play方法,但不会发出声音! 任何帮助都将不胜感激 import java.app

我已经阅读了关于java AudioClip的前几期文章并做了研究,但我仍然不明白为什么会这样 音频剪辑不能播放。.wav片段在EclipseIDE中运行良好,它也位于适当的目录中;如果文件 在不正确的目录中,此代码段将抛出错误消息

我的教授要求我们也使用这种格式播放音频剪辑,
audioClip=Applet.newAudioClip(新文件(filePath.toURI().toul())

执行时,会调用底部的play方法,但不会发出声音! 任何帮助都将不胜感激

import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.io.File;
import java.net.MalformedURLException;

public class PlaySoundApplet extends Applet implements ActionListener
{
    private static final long serialVersionUID = 1L;
    Button play,stop;
    AudioClip audioClip;

  public void init()
  {
      play = new Button("Play");
      add(play);
      play.addActionListener(this);

      stop = new Button("Stop");
      add(stop);
      stop.addActionListener(this);

      try
      {  
          String filePath = "." + File.separator + "audio" + File.separator + "island_music.wav";

          File file = new File(filePath);

          if (file.exists())
          {
              audioClip = Applet.newAudioClip(file.toURI().toURL());
          }
          else
          {
              throw new RuntimeException("Directory " + filePath + " does not exist"); //debugging
          }
      }
      catch (MalformedURLException malformedURLException)
      {
          throw new RuntimeException("Malformed URL: " + malformedURLException);  //debugging
      }
  }

  public void actionPerformed(ActionEvent ae)
  {
      Button source = (Button)ae.getSource();

      if (source.getLabel() == "Play")
      {
          audioClip.play();
          System.out.println("Play was executed");
      }
      else if(source.getLabel() == "Stop")
      {
          audioClip.stop();
          System.out.println("Stop was executed");
      }
  }
}

你的意思是在你建立程序并运行它之后,声音就不会播放了吗?您应该将wav文件嵌入到资源文件夹中,然后使用getResources()查找该文件。或者,另一个选项是扫描本地目录,以找到具有匹配名称和文件扩展名的文件对象。无法给出我头顶上的示例代码对不起(从电话中键入)


此外,您正在抛出格式错误的URL异常,以便在URL错误时不会出现错误。你不应该扔它。。。使用try{…}catch(Malformedurexception mex){system.out.println(mex.getMessage())};相反。

尝试使用简单的

…leftright.wav有效

大多数媒体格式(声音、图像、视频等)被称为“容器格式”。媒体的编码可能有多种类型。Java读取一些编码,但不读取其他编码

所以我猜我必须尝试不同类型的.wav文件


如果是针对应用程序资源,我倾向于将当前WAV转换为与Java声音兼容的类型。

“确实会被调用,但没有声音!”不要大声喊叫!尝试使用简单的代码。你的家庭作业是否规定这必须是一个小程序?哇。。。leftright.wav有效!!所以我猜我必须尝试另一种类型的.wav文件?如果抛出了一个格式错误的文件,我会在控制台中看到一条消息,但是从一开始就没有抛出过。