Tag: javasound

Java程序为音频文件创建PNG波形

如何使用Java将Wav文件转换为PNG波形图像文件? java MyProgram.class [path to wav file] [path where to write png file] 预期成绩: 保存在指定路径中的Png是传入的wav文件的波形。

使用Clip对象播放多个声音片段

我正在开发一个包含大量JButton对象的程序,我希望每个对象都有自己的.wav文件。 此外,我希望声音以某种方式工作,使得它们可以与其他按钮的声音重叠,但它不能与自身重叠(在播放声音时单击按钮将重新启动声音)。 我尝试使用一个Clip对象,但我无法完成上面所说的内容。 结果,我使用每个按钮声明一个新的Clip对象,但我觉得这对我的问题来说是一个相当低效的解决方案。 如何以最有效的方式完成我在第一段中所述的内容?

用Java捕获扬声器输出

使用Java是否可以捕获扬声器输出? 此输出不是由我的程序生成的,而是由其他正在运行的应用程序生成的。 这可以用Java完成还是我需要求助于C / C ++?

Java原始音频输出

只是想知道Java中是否存在像Python中的模块PyAudiere这样的库,它只是允许您创建音调并播放它们,就像这个示例Python代码: device = audiere.open_device() tone = device.create_tone(500) #create a 500hz tone tone.play() tone.stop() 这只是为您的默认声音设备分配一个变量,然后为该设备制作一个音调并播放它然后停止它。 这样的库是否易于使用? 我感谢任何反馈,谢谢! 😀

Java Sound可以用来控制系统卷吗?

Java Sound为各种声音线function提供了FloatControl实例,并提供了MASTER_GAIN和VOLUME控件类型。 这些控件可以用来改变系统音量吗?

麻烦在Java中播放wav

我正试着玩 PCM_UNSIGNED 11025.0 Hz, 8 bit, mono, 1 bytes/frame 文件如此处(1)和此处(2)所述 。 第一种方法有效,但我不想依赖sun.*东西。 第二个导致只播放一些领先的帧,听起来更像是一个点击。 因为我正在使用ByteArrayInputStream播放,所以不能成为IO问题。 Plz分享你为什么会发生这种情况的想法。 TIA。

如何使用Java Sound中的音频样本数据?

这个问题通常被问到是另一个问题的一部分,但事实certificate答案很长。 我决定在这里回答它,所以我可以在其他地方链接到它。 虽然我不知道Java此时可以为我们生成音频样本的方式,但如果将来发生变化,这可能是一个适合它的地方。 我知道JavaFX有这样的东西,例如AudioSpectrumListener ,但仍然不能直接访问样本。 我正在使用javax.sound.sampled进行播放和/或录制,但我想对音频做些什么。 也许我想在视觉上展示它或以某种方式处理它。 如何使用Java Sound访问音频样本数据? 也可以看看: Java声音教程 (官方) Java声音资源 (非官方)

录制时检测静音

在Java中开始录制操作时,如何检测静音? 什么是PCM数据? 如何用Java计算PCM数据? 我找到了解决方案: package bemukan.voiceRecognition.speechToText; import javax.sound.sampled.*; import java.io.*; public class RecordAudio { private File audioFile; protected boolean running; private ByteArrayOutputStream out; private AudioInputStream inputStream; final static float MAX_8_BITS_SIGNED = Byte.MAX_VALUE; final static float MAX_8_BITS_UNSIGNED = 0xff; final static float MAX_16_BITS_SIGNED = Short.MAX_VALUE; final static float MAX_16_BITS_UNSIGNED = 0xffff; private AudioFormat format; private float […]

你怎么玩一个长的AudioClip?

我写了一个简单的类来在一个简单的游戏中播放音频文件。 它适用于枪声或爆炸等小声音,但当我尝试将它用于背景音乐时,我收到此错误:“无法分配剪辑数据:请求的缓冲区太大。” 我假设这意味着文件太大,但我怎么能解决这个问题呢? 资源: import java.io.File; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.Clip; public class Sound{ private Clip clip; public Sound(String filepath){ System.out.println(filepath); File file = new File(filepath); try { clip = AudioSystem.getClip(); AudioInputStream inputStream = AudioSystem.getAudioInputStream(file); clip.open(inputStream); } catch (Exception e) { System.err.println(e.getMessage()); } } public void play(){ System.out.println(“play”); if(clip.isActive()){ clip.stop(); } clip.setFramePosition(0); clip.start(); } […]