首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Sound .WAV格式

Java Sound .WAV格式
EN

Stack Overflow用户
提问于 2016-01-29 02:26:39
回答 2查看 384关注 0票数 1

我知道这个关于声音的问题现在已经被问了几次了,相信我,我已经看过了,试图找到我自己的答案。我之前在一个不同的项目中使用Java的声音工作,没有任何困难,使用以下代码:

代码语言:javascript
复制
public void playWelcome (){

  try{

    InputStream inputStream = 

    getClass().getResourceAsStream("Start.wav");

    AudioStream audioStream = new AudioStream(inputStream);

    AudioPlayer.player.start(audioStream);

  }catch(IOException ioException){

    ioException.printStackTrace();

    System.out.println("Unable to Find WAV/Start FIle");
  }   
} 

显然,这并不像之前解释的那样工作,所以我尝试使用:

代码语言:javascript
复制
public void uploadDownload() {

  try {
    AudioInputStream audioInputStream = 

    AudioSystem.getAudioInputStream(new

    File("/DaWord/src/resources/upload.wav").getAbsoluteFile());

    Clip clip = AudioSystem.getClip();

    clip.open(audioInputStream); 

    clip.start();

  } catch(Exception ex) {

    System.out.println("Error with playing sound.");

    ex.printStackTrace();
  }
}

注意:我也尝试过不带斜杠的文件。'my file.wav‘有人能帮我一下吗?

更新:

所以我设法让它运行起来..某种程度上:

文件soundFile =新文件(“/Users/myname/DaWord/src/testing.wav”);

代码语言:javascript
复制
      AudioInputStream audioIn = 

AudioSystem.getAudioInputStream(soundFile);

代码语言:javascript
复制
     // Get a sound clip resource.
     Clip clip = AudioSystem.getClip();

     // Open audio clip and load samples from the audio input stream.
     clip.open(audioIn);

     clip.start();

但是有没有人知道如何通过不提供绝对路径来做到这一点呢?我尝试在文件的末尾使用.absoulutePath();,例如: File

文件=新文件("sound.wav").absouloutePath();

EN

回答 2

Stack Overflow用户

发布于 2016-01-29 02:40:41

正如here所解释的,这是分配来自文件或AudioInputStream的管道的方法:

代码语言:javascript
复制
// from a wave File
File soundFile = new File("eatfood.wav");
AudioInputStream audioIn = AudioSystem.getAudioInputStream(soundFile);
// from a URL
URL url = new URL("http://www.zzz.com/eatfood.wav");
AudioInputStream audioIn = AudioSystem.getAudioInputStream(url);
// can read from a disk file and also a file contained inside a JAR (used for distribution)
// recommended
URL url = this.getClass().getClassLoader().getResource("eatfood.wav");
AudioInputStream audioIn = AudioSystem.getAudioInputStream(url);
票数 0
EN

Stack Overflow用户

发布于 2016-01-30 03:07:52

这暂时是可行的.具有完整路径

File("/Users/mrBerns/NetBeansProjects/DaWord/src/ching.wav");soundFile =新文件

代码语言:javascript
复制
      AudioInputStream audioIn = AudioSystem.getAudioInputStream(soundFile);              
     // Get a sound clip resource.
     Clip clip = AudioSystem.getClip();
     // Open audio clip and load samples from the audio input stream.
     clip.open(audioIn);
     clip.start();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35069190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档