当前位置: 首页 > 面试题库 >

从计算机中的文件播放Java中的.wav文件

单昊穹
2023-03-14
问题内容
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
获得的。

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

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


问题答案:

第一次尝试

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

这不是您构造URL到的方式File。相反,您应该使用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();
}

第三次尝试

open这个剪辑,但是永远不会start

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从我的电脑(不是从URL)播放wav文件。我确信我把它放在了正确的地方,SRC(我还把它放在了几乎所有的地方以防万一...). 第一次尝试来自http://www.cs.cmu.edu/~illah/CLASSDOCS/javasound.pdf,它给了我一个catch语句。 第二次尝试是把我的记录。mediafire上的wav文件。然而,这并没有奏效。线程“main”j

  • 我目前正在尝试学习音频编程。我的目标是打开一个wav文件,提取所有内容并使用RtAudio播放示例。 我制作了一个WaveLoader类,让我提取样本和元数据。我用这本指南来做这件事,我用010编辑器检查了一切都是正确的。这是010编辑器的快照,显示了结构和数据。 这就是我在WaveLoader类中存储原始样本的方式: 如果我打印出我得到的每个样本:1, -3, 4, -5... 问题是,我不确定

  • 问题内容: 我试图互相播放一些WAV文件。我尝试了这种方法: 但这同时发挥了所有作用。所以我需要一个看起来像这样的函数: 向量包含文件,例如:, 我已经寻找了四个多小时,但似乎找不到有效的解决方案:( 我还尝试将WAV文件连接到一个AudioInputStream。它不会产生任何编译器错误,但是声音完全混乱了。码: 编辑 即使我尝试将前两个文件放在一起,也会失败: 问题答案: 这段代码有点底层,但

  • 问题内容: 我正在用Java 做辫子。如果倒带时间,声音会向后播放。如何向后播放WAV文件?也许有像这样的流?在Braid网站上,您可以看到我的意思。 更新: _ 解决! 看到我自己的帖子。_ 问题答案: !!!!!! 我自己解决了这个问题(14岁!!), 我写了这个课: 然后:

  • 我有一些代码(在WPF应用程序中),当一些文本被复制到剪贴板时,它将使用SpeechSynthesizer读出文本(我所有的代码都在这篇文章的底部)。 然而,以这种方式播放音频不允许我暂停、倒带或播放等。 所以我想我应该使用SpeechSynthesis来保存一个wav文件。然后使用MediaPlayer类,因为它很容易暂停、播放等。 但是,保存文件后,该文件不会在我的媒体播放器中播放。这个文件很

  • 我无法从sd卡播放wav音频文件: 这是我的代码: 文件名路径的格式为:/storage/emulated/0/MyApp/name。wav 这是我得到的错误代码: 我希望你能帮我? 谢谢