gpt4 book ai didi

java - 从计算机中的文件在java中播放.wav文件

转载 作者:行者123 更新时间:2023-12-01 13:15:58 26 4
gpt4 key购买 nike

package soundTest;

import java.applet.*;
import java.net.*;
import javax.swing.*;
import javax.sound.sampled.*;
import java.io.*;
import java.util.*;

public class SoundTest {

public static void main(String[] args) throws Exception {

try {
AudioClip clip1 = Applet.newAudioClip(new URL(new File("E0.wav").getAbsolutePath()));
clip1.play();
} catch (MalformedURLException murle) {
System.out.println(murle);
}

URL url = new URL(
"http://www.mediafire.com/listen/tok9j9s1hnogj1y/downloads/E0.wav");
Clip clip = AudioSystem.getClip();
AudioInputStream ais = AudioSystem.getAudioInputStream(url);
clip.open(ais);

URL url2 = new URL(
"http://www.villagegeek.com/downloads/webwavs/Austin_Powers_death.wav");
Clip clip2 = AudioSystem.getClip();
AudioInputStream ais2 = AudioSystem.
getAudioInputStream(url2);
clip2.open(ais2);
clip.loop(1);
clip2.loop(Clip.LOOP_CONTINUOUSLY);

SwingUtilities.invokeLater(new Runnable() {
public void run() {
JOptionPane.showMessageDialog(null, "Close to exit!");
}
});
}

}

我不知道如何在 java 中从我的计算机(而不是从 URL)播放 wav 文件。我确信我已将其放置在正确的区域,即 SRC(我还将它放置在几乎所有其他空间中,以防万一......)。

第一次尝试来自http://www.cs.cmu.edu/~illah/CLASSDOCS/javasound.pdf它给了我 catch 语句。

第二次尝试是将我录制的 .wav 文件放在 mediafire 上。然而,这没有用。 “线程“main”javax.sound.sampled.UnsupportedAudioFileException 中出现异常:无法从输入 URL 获取音频输入流”

第三个示例工作正常,但是与我的文件不同,它是来自在线的文件。当您单击该链接时,它只会将您带到一个音频播放器,而 mediafire 链接会将您带到一个包含其他内容和一些播放该文件的应用程序的页面。

最佳答案

第一次尝试

AudioClip clip1 = Applet.newAudioClip(new URL(new File("E0.wav").getAbsolutePath())); 

这不是构造 FileURL 的方式。相反,您应该使用 File#getURI#getURL

AudioClip clip1 = Applet.newAudioClip(new File("/full/path/to/audio.wav").toURI().toURL());

第二次尝试

mediafire 正在返回 html 响应,而不是音频文件...您可以使用...进行测试

URL url = new URL("http://www.mediafire.com/listen/tok9j9s1hnogj1y/downloads/E0.wav");    
try (InputStream is = url.openStream()) {
int in = -1;
while ((in = is.read()) != -1) {
System.out.print((char)in);
}
} catch (IOException exp) {
exp.printStackTrace();
}

第三次尝试

打开剪辑,但从未启动它...

URL url2 = new URL("http://www.villagegeek.com/downloads/webwavs/Austin_Powers_death.wav");
Clip clip2 = AudioSystem.getClip();
AudioInputStream ais2 = AudioSystem.getAudioInputStream(url2);
clip2.open(ais2);
clip2.start();

关于java - 从计算机中的文件在java中播放.wav文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22469164/

26 4 0
文章推荐: r - 使用 R 的不同绘图系统在 0 处绘制垂直线和水平线
文章推荐: java - 风格? Java中复制构造函数签名的方法
文章推荐: java - arraylist.remove 无法正常工作
文章推荐: java - Android 在 Class Object 中添加 ArrayList 作为变量