标签: javasound

将 wav/wave 文件读入 short[] 数组

是否有将 wav 文件读入 short[] 数组的 api?我正在尝试将 wav 文件读入短数组。

我找不到任何内置的 API

java wav javasound

2
推荐指数
1
解决办法
1万
查看次数

如何暂停剪辑?爪哇

我有一个工作得很好的音乐播放器,但我想添加一个播放/暂停按钮。我已经设置了按钮等,但我不知道实际暂停剪辑的代码。

这是我的代码:

        try{
        File f = new File("songs/mysong.wav");
        Clip clip = AudioSystem.getClip();
        AudioInputStream ais = AudioSystem.getAudioInputStream(f);
        clip.open(ais);
        playing = true;
        if(MusicPlayer.pause)
        {
            clip.stop(); // <- Doesnt stop the song
        } 
        clip.loop(Clip.LOOP_CONTINUOUSLY);

    }catch(Exception exception){System.out.println("Failed To Play The WAV File!");}
Run Code Online (Sandbox Code Playgroud)

提前致谢!

java audio javasound

2
推荐指数
1
解决办法
9734
查看次数

AudioInputStream不起作用

我每次用户按下按钮时都会尝试播放.wav声音,但会抛出异常:

Exception in thread "Thread-0" java.lang.IllegalArgumentException: Invalid format
    at org.classpath.icedtea.pulseaudio.PulseAudioDataLine.createStream(PulseAudioDataLine.java:142)
    at org.classpath.icedtea.pulseaudio.PulseAudioDataLine.open(PulseAudioDataLine.java:99)
    at org.classpath.icedtea.pulseaudio.PulseAudioDataLine.open(PulseAudioDataLine.java:283)
    at org.classpath.icedtea.pulseaudio.PulseAudioClip.open(PulseAudioClip.java:402)
    at org.classpath.icedtea.pulseaudio.PulseAudioClip.open(PulseAudioClip.java:453)
    at Uber.play(Uber.java:534)
    at Uber$5.run(Uber.java:340)
    at java.lang.Thread.run(Thread.java:724)

这是代码:

//Play Audio File
public void play(String file) throws LineUnavailableException, UnsupportedAudioFileException, IOException
{
    AudioInputStream inputStream = AudioSystem.getAudioInputStream(new File(file));
    Clip clip = AudioSystem.getClip();
    clip.open(inputStream);
    clip.start();
}
Run Code Online (Sandbox Code Playgroud)

java audio javasound javax.sound.sampled

2
推荐指数
1
解决办法
3550
查看次数

在特定声音设备 java 上播放声音

我正在尝试做一些简单的事情。我想在给定的声音媒体上播放声音,而不是在默认媒体上播放。

这是我最后一次尝试,迭代所有媒体的思想并播放声音。只有默认设备上的媒体播放某些内容。直接播放时,即使默认设备也不工作。

public void testSoundPLayer() throws Exception {
    AudioInputStream inputStream = AudioSystem.getAudioInputStream(Main.class.getResourceAsStream(Constants.SOUND_ALERT));

    Mixer.Info[] mixerInfo = AudioSystem.getMixerInfo();
    for(int i = 0; i < mixerInfo.length; i++)
    {
        Mixer.Info info = mixerInfo[i];

        System.out.println(String.format("Name [%s] \n Description [%s]\n\n", info.getName(), info.getDescription()));
        System.out.println(info.getDescription());

        try
        {
            Clip clip = AudioSystem.getClip(info);
            clip.open(inputStream);
            clip.start();
        }
        catch (Throwable t)
        {
            System.out.println(t.toString());
        }
        Thread.sleep(2000L);
    }
}
Run Code Online (Sandbox Code Playgroud)

我愿意使用外部库,甚至更改默认声卡。我只想要一个“不错”的方法来在给定的声卡上播放声音(wav),而不需要依赖于操作系统的方法。

java audio javasound

2
推荐指数
1
解决办法
3421
查看次数

Java检查麦克风输入是否静音

我正在尝试制作一个简单的程序来检查麦克风是否静音。Line这是我用来确定哪个麦克风的代码。

private Line getMic() throws LineUnavailableException {

    Mixer.Info[] mixerInfos = AudioSystem.getMixerInfo();

    for (int i = 0; i < mixerInfos.length; i++) {
        Mixer mixer = AudioSystem.getMixer(mixerInfos[i]);
        int maxLines = mixer.getMaxLines(Port.Info.MICROPHONE);
        Port lineIn = null;
        if (maxLines > 0) {

            lineIn = (Port) mixer.getLine(Port.Info.MICROPHONE);
            return lineIn;
        }
    }

    return null;
}
Run Code Online (Sandbox Code Playgroud)

然后从那里我调用以下内容:

BooleanControl muteControl = (BooleanControl)mic.getControl(BooleanControl.Type.MUTE);
System.out.println(muteControl.getValue());
Run Code Online (Sandbox Code Playgroud)

但是,我收到错误:

Unsupported control type: Mute
Run Code Online (Sandbox Code Playgroud)

我继续查看Controls可以使用Line以下内容:

for(Control c : mic.getControls()){
    System.out.println(c.getType());
}    
Run Code Online (Sandbox Code Playgroud)

只有一个Control,那就是Master Volume. 我不确定为什么 …

java audio microphone javasound

2
推荐指数
1
解决办法
802
查看次数

从Main.class.getResource()获取文件

我正在用Java做一个小游戏。对于这个游戏,我只是添加了声音。所以我想把我所有的图像和音频文件放在罐子里。对于图片,这很简单:

new ImageIcon(Main.class.getResource("images/machgd2.png")).getImage()
Run Code Online (Sandbox Code Playgroud)

但是对于音频,仅当我在Eclipse中运行程序时才起作用,而不能从jar中运行。我用:

File soundFile = new File(Main.class.getResource(filename).getFile());
Run Code Online (Sandbox Code Playgroud)

那么如何从.jar文件中获取此文件?

更新:

好的,感谢Andrew!为了播放声音,我使用了一个在网上找到的类,然后发现该类仅使用File来获取AudioInputStream,因此我删除了File。

java jar file javasound getresource

1
推荐指数
1
解决办法
7619
查看次数

提取频率发生的时间

我拿一首歌样本并对样​​本进行FFT(快速傅里叶变换).我能够得到歌曲的频率,但我无法得到这些频率出现的时间.因此,它基本上变得无用,因为我必须将它与不同的样本匹配,除非我得到它的时间信息.

我该怎么办?

java fft javasound frequency-distribution audio-fingerprinting

1
推荐指数
1
解决办法
303
查看次数

如何使用.jar文件包含音乐文件?

我的netbeans遇到了麻烦.我制作了一个只播放背景音乐的节目.当我从netbeans IDE运行该程序时,它运行音乐没有任何错误.但是当我试图运行.jar文件时,程序正常运行而没有音乐.我已经检查了一百次路径,但它不起作用.没有错误,没有错误,音乐不是从.jar文件播放的.为什么这样?

public static synchronized void playSound(final String url) { 
  new Thread(new Runnable() { 
    public void run() { 
     try { 
        Clip clip = AudioSystem.getClip(); 
        AudioInputStream inputStream; 
        inputStream = AudioSystem.getAudioInputStream(
            this.getClass().getResource(url)); 
        clip.open(inputStream);
        clip.start(); 
     } catch (Exception e) { 
        System.err.println(e.getMessage()); 
     } 
    } 
   }).start(); }
Run Code Online (Sandbox Code Playgroud)

java javasound embedded-resource

1
推荐指数
1
解决办法
2671
查看次数

Java Wav文件错误(javax.sound.sampled.UnsupportedAudioFileException:无法从输入文件中获取音频输入流)

我的Java项目中有两个类

篮板球

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Rebound
{

   public static void main (String[] args)
   {
      JFrame frame = new JFrame ("Rebound");
      frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);

      frame.getContentPane().add(new ReboundPanel());
      frame.pack();
      frame.setVisible(true);
   }
}
Run Code Online (Sandbox Code Playgroud)

第二个是ReboundPanel

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.sound.sampled.*;
import java.io.File;
import java.io.IOException;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.SourceDataLine;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.LineEvent;
import javax.sound.sampled.LineListener;

public class ReboundPanel extends JPanel
{
   private final int WIDTH = 600, HEIGHT = 300;
   private …
Run Code Online (Sandbox Code Playgroud)

java audio events javasound

1
推荐指数
1
解决办法
1万
查看次数

Sun,音频播放器和声音I/O.

我有几个与Sun,音频播放器和声音输入/输出相关的问题

为什么sun.audio.AudioPlayer包不是Java API的一部分?一些信息在这里:http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6b14/sun/audio/AudioPlayer.java但它仍然是默认JDK构建的一部分我我正在使用.

我已经尝试过使用JMF,花了半天时间用螺丝钉绕它,但没有真正有用.我设法导入jmf.jarEclipse我尝试了一个演示脚本,它仍然吐出像无人业务一样的错误.考虑到现在放弃了?!?然而,Java提供了一个相对较新版本的链接:http://www.oracle.com/technetwork/java/javase/download-142937.html我有点担心但是如何在页面底部写下面的内容"假,,,,,,,"?

您认为什么是用于音频I/O和操作的最佳软件包?

我只是想在一个项目上工作,虽然MP3播放器是一个很好的起点,因为我可以做一点摆动.然而它似乎相当困难,因为从我所看到的Java并不是非常热衷于制作mp3和音频操作包.

java jmf sun javasound audio-player

1
推荐指数
1
解决办法
7494
查看次数