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