Tag: javasound

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); } } 第二个是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 […]

使用java识别mp3结尾处的沉默

尝试以mp3格式检测音频结束时的静音,所有格式都很有用,但mp3格式是最重要的

播放AudioInputStream时出错

我想创建2个可以启动和停止背景音频的JMenuItem 。 这是我的代码: public class MainClass extends JFrame { private AudioInputStream audioInputStream; private Clip clip; public MainClass(String title) { try { audioInputStream = AudioSystem.getAudioInputStream(new File(“Background.wav”)); clip = AudioSystem.getClip(); clip.loop(Clip.LOOP_CONTINUOUSLY); clip.open(audioInputStream); } catch(Exception e) { System.out.println(“Error with playing sound.”); e.printStackTrace(); } } public void startSound() { clip3.start(); settingSubMenuItem1.setEnabled(false); settingSubMenuItem2.setEnabled(true); } public void stopSound() { clip3.stop(); settingSubMenuItem1.setEnabled(true); […]

SourceDataLine.drain()在OSX上挂起

我的游戏通过常用方法播放声音: sdl.open(); sdl.start(); sdl.write(data, 0, data.length); sdl.drain(); sdl.stop(); sdl.close(); 用户可以取消播放(异步): sdl.stop(); 这种取消在Windows下运行良好,但是对于一个运行带有Java 6的OSX 10.5.8的用户,程序会挂起。 Threaddump显示回放线程在drain()中: com.sun.media.sound.MixerSourceLine.nDrain 。 如果用户没有中断声音,它会很好地完成并继续应用程序。 我的问题是: 这是OSX Java的错误吗? 我应该使用sdl.close()而不是停止吗? 有关变通方法的任何建议或经验吗? 编辑 :我发现此错误报告具有类似的效果,但页面说它已修复。

在Java中播放音效

我试图做相当于这行代码,除了用一个小的mp3文件代替系统蜂鸣声: Toolkit.getDefaultToolkit().beep(); 我有一个mp3文件,它有一些我想要播放的声音效果。 这是一件相对容易的事吗? 有人可以告诉我这样做的代码吗?

我怎么知道我是否在事件发送线程上?

1.考虑我的代码是在我的JPanel的某些行上,我是自动在EDT上吗? 2.对于不属于GUI,JPanels或其他视图类,简单逻辑类的所有其他类的同名问题。 3.如果我有JPanel我正在播放音乐,那么音乐应该在事件发送线程上运行还是在非EDT的其他线程上运行(为了不阻止GUI,尽管我没有遇到任何运行问题来自EDT)? 注意:我想要一般规则如何在不使用SwingUtilities.isEventDispatchThread()情况下知道它 谢谢

用Java获取音频文件的波形图案

我想知道如何从音频文件中获取振幅等音乐信息? 假设我们有一个原始音频文件,我想从文件中提取数据,这允许我生成一个曲线,如http://www1.icsi.berkeley.edu/Speech/mr/nearfar.html 。 获得此曲线后,我将执行FFT等。 我一直在尝试在Java Sound中搜索解决方案,但到目前为止我只知道我可以使用AudioInputStream将数据倒入byte[] 。 但是如何将该byte[]转换为double[] ,其中包含有关声音的实际信息? 在这种情况下, double[]的值表示幅度。 有谁能提供解决方案来解决Java中的这个问题?

mp3到java中的wav转换

我将mp3转换为wav的代码是: package audio1; import java.io.File; import javax.sound.sampled.AudioFileFormat; import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; public class NewClass { public static void main(String [] args){ try{ AudioFileFormat inputFileFormat = AudioSystem.getAudioFileFormat(new File(“c:\\1.mp3”)); AudioInputStream ais = AudioSystem.getAudioInputStream(new File(“c:\\1.mp3”)); AudioFormat audioFormat = ais.getFormat(); System.out.println(“File Format Type: “+inputFileFormat.getType()); System.out.println(“File Format String: “+inputFileFormat.toString()); System.out.println(“File lenght: “+inputFileFormat.getByteLength()); System.out.println(“Frame length: “+inputFileFormat.getFrameLength()); System.out.println(“Channels: “+audioFormat.getChannels()); System.out.println(“Encoding: […]

在Java中同时播放多个字节数组

如何同时播放多个(音频)字节数组? 这个“字节数组”由TargetDataLine记录,使用服务器传输。 到目前为止我尝试过的 使用SourceDataLine: 无法使用SourceDataLine播放多个流,因为write方法会阻塞,直到写入缓冲区。 使用Threads无法修复此问题,因为只有一个SourceDataLine可以同时写入。 使用AudioPlayer类: ByteInputStream stream2 = new ByteInputStream(data, 0, data.length); AudioInputStream stream = new AudioInputStream(stream2, VoiceChat.format, data.length); AudioPlayer.player.start(stream); 这只会对客户产生噪音。 编辑我没有同时收到语音包,它不是同时,更“重叠”。

FreeTTS没有音频linux ubuntu – 没有错误

我使用Java 6运行Ubuntu 10.10并且无法获取FreeTTS来输出任何音频。 我现在已经在3台不同的计算机上试过它,甚至要求我的好友在他的Ubuntu PC上试用它并且他遇到了同样的问题。 绝对没有显示错误,在获得MBROLA之后我甚至不再收到关于没有检测到MBROLA声音的警告。 等等等等等等.. 使用同一台计算机我运行了一个虚拟盒并启动了Windows XP,我实际上能够在运行HelloWorld.jar和TTSHelloWorld.jar时获得音频,但是当我尝试输入我自己的文本时,freetts.jar仍然是静默的。 我使用的命令。 java -jar lib / freetts.jar -text你好 当我点击进入它启动并用来给我丢失MBROLA警告消息,但现在它只是坐在那里直到我CTRL-C停止它。 我不明白我做错了什么以及为什么没有其他人遇到这个问题,当我在每台计算机上展示它时,它在Windows上有所作为。 谁能帮我? 谢谢, 约翰