Tag: javasound

带有Port(s)和DataLine(s)的JavaSound混音器?

JavaSound API程序员指南中的图表似乎暗示(第19-20页)混音器原则上可以同时具有DataLines和Ports。 但是,我想知道是否有人真的看到过这种配置? 我目击的是,在相关的情况下,混音器成对出现,一个带有源/目标数据线,另一个带有相应的端口。 有没有人目睹了指南中隐含的配置,混音器有端口和数据线(或者我误解了指南)?

提高java中声音文件的播放速度

我正在寻找有关如何使用Java及其声音API提高声音文件播放速度的信息。 我目前正在使用剪辑和AudioInputStream来播放文件,但如果这意味着我可以提高播放速度,我将很乐意改变它。

切割波形文件

如何使用java剪切.wave文件? 我想要的是: 当用户按下标记为cut的按钮时,它应该将音频从前一个mark (以纳秒为单位)切割到当前位置(以纳秒为单位)。 (在声音被切断后,标记位于当前位置,以纳秒为单位)在我得到那段音频后,我想保存那段音频文件。 // obtain an audio stream long mark = 0; // initially set to zero //get the current position in nanoseconds // after that how to proceed ? // another method ? 我怎样才能做到这一点 ?

Java Sound API在您的计算机上找到哪些输出和记录端口?

我正在使用Java Sound API ,如果我想调整记录卷,我需要对操作系统公开给Java的硬件进行建模。 事实certificate,所呈现的内容有很多种。 因此,我谦虚地要求任何人能够帮助我在他们的计算机上运行以下内容并回发结果,以便我可以了解那里有什么。 提前感谢任何可以提供帮助的人:-) import javax.sound.sampled.*; public class SoundAudit { public static void main(String[] args) { try { System.out.println(“OS: “+System.getProperty(“os.name”)+” “+ System.getProperty(“os.version”)+”/”+ System.getProperty(“os.arch”)+”\nJava: “+ System.getProperty(“java.version”)+” (“+ System.getProperty(“java.vendor”)+”)\n”); for (Mixer.Info thisMixerInfo : AudioSystem.getMixerInfo()) { System.out.println(“Mixer: “+thisMixerInfo.getDescription()+ ” [“+thisMixerInfo.getName()+”]”); Mixer thisMixer = AudioSystem.getMixer(thisMixerInfo); for (Line.Info thisLineInfo:thisMixer.getSourceLineInfo()) { if (thisLineInfo.getLineClass().getName().equals( “javax.sound.sampled.Port”)) { Line thisLine = […]

Java从MIDI键盘获取输入

我在java中设计了自己的合成器,现在我想用midi键盘连接它。 我的下面的课程搜索所有具有发射器的midi设备。 它成功找到了我的midi键盘。 我为每个设备添加了自己的接收器到每个发射器,以便它可以拾取所有可能的东西。 通过阅读所有帮助文档和java文档,我知道发送器将MidiEvents发送到接收器,接收器然后使用send方法处理它们。 所以我编写了自己的实现Receiver的内部类,并且只使用了println语句来检查send方法中是否有任何检测到的内容。 但是根本没有任何东西被拿走。 做这么简单的事似乎没什么帮助,我看了每个帮助文件,javadoc和论坛。 我敢肯定它一定是非常明显我不知何故错过的东西。 我的合成器不应该与接口合成器混淆,它不是midi乐器。 它使用合成算法并具有回放方法。 基本上我只需要让midi键盘发送一个关于事件的注释,它将调用回放方法。 import javax.sound.midi.*; import java.util.ArrayList; import java.util.List; import java.io.*; public class MidiHandler { //ArrayList of MidiDevices private ArrayList devices = new ArrayList(); public MidiHandler() { MidiDevice device; MidiDevice.Info[] infos = MidiSystem.getMidiDeviceInfo(); for (int i = 0; i 0) { //if it does, add it […]

AudioInputStream不起作用

我每次用户按下按钮时都会尝试播放.wav声音,但会抛出exception: 线程“Thread-0”中的exceptionjava.lang.IllegalArgumentException:格式无效 at org.classpath.icedtea.pulseaudio.PulseAudioDataLine.createStream(PulseAudioDataLine.java:142) 在org.classpath.icedtea.pulseaudio.PulseAudioDataLine.open(PulseAudioDataLine.java:99) 在org.classpath.icedtea.pulseaudio.PulseAudioDataLine.open(PulseAudioDataLine.java:283) 在org.classpath.icedtea.pulseaudio.PulseAudioClip.open(PulseAudioClip.java:402) 在org.classpath.icedtea.pulseaudio.PulseAudioClip.open(PulseAudioClip.java:453) 在Uber.play(Uber.java:534) 在优步$ 5.run(Uber.java:340) 在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(); }

如何在Java中的新线程中播放.MIDI文件?

我正在用Java改造游戏的一部分,我需要知道如何播放MIDI声音文件。 优选地,它不涉及导入任何外部库。 它也必须可以在新线程中运行,这样我就可以将各个声音叠加在背景歌曲上。 谢谢你的想法和时间。

使用Sun.audio在java中播放音频

我只想执行一项简单的任务。 (我是一个java新手)。 我想在点击按钮时播放音频片段。 这是我的代码的一部分(我通过从Youtube复制教程完全做到了。) private void btnPlayActionPerformed(java.awt.event.ActionEvent evt) { InputStream in; try{ in=new FileInputStream(new File(“C:\\Users\\Matt\\Documents\\dong.wav”)); AudioStream timeupsound=new AudioStream(in); AudioPlayer.player.start(timeupsound); } catch(Exception e){ JOptionPane.showMessageDialog(null, e); } } 但问题是,这不起作用。 它抛出并抛出IOException:“无法从输入流创建音频流”。 我的问题是,我做错了什么? (因为我清楚地看到这个代码在youtubevideo中工作,我使用了相同的代码。请帮助。再一次,我是新手);

Java同时播放多个剪辑

因此,每次单击面板时,我的应用程序都应该播放WAV文件。 但现在的问题是,它在第​​二个播放之前等待第一个完成。 我希望能够让他们同时玩。 我把Thread.sleep(500)的原因是因为如果我没有,那么它根本不会播放声音:( import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.Clip; import javax.sound.sampled.FloatControl; import javax.sound.sampled.LineUnavailableException; import javax.sound.sampled.UnsupportedAudioFileException; import javax.swing.JFrame; @SuppressWarnings(“serial”) public class SoundEffectPlayer extends JFrame { /* * Jframe stuff */ public SoundEffectPlayer() { this.setSize(400, 400); this.setTitle(“Mouse Clicker”); this.addMouseListener(new Clicker()); this.setVisible(true); } private class Clicker extends […]

如何从wav文件中获取PCM数据?

我有一个.wav文件。 我想从该声音文件中获取PCM数据,以便我可以从声音中获取单个数据块并对其进行处理。 但我不知道该怎么做。 谁能告诉我怎么做? 到目前为止我做到了这一点: public class test { static int frameSample; static int timeofFrame; static int N; static int runTimes; static int bps; static int channels; static double times; static int bufSize; static int frameSize; static int frameRate; static long length; public static void main(String[] args) { try { AudioInputStream ais = AudioSystem.getAudioInputStream(new File(“music/audio.wav”)); […]