- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我的目标是从 Java 播放 mp3 文件。对于我采用的每一种方法,它总是以 LineUnavailableException
失败。
AudioInputStream inputStream = AudioSystem.getAudioInputStream(new URL("http://localhost:8080/agriserver/facebook/sound/test6.mp3"));
Clip clip = AudioSystem.getClip(info);
clip.open(inputStream);
clip.start();
修复失败的尝试:
异常(exception)情况:
Exception in thread "main" javax.sound.sampled.LineUnavailableException: line with format MPEG1L3 48000.0 Hz, unknown bits per sample, stereo, unknown frame size, 41.666668 frames/second, not supported. at com.sun.media.sound.DirectAudioDevice$DirectDL.implOpen(DirectAudioDevice.java:494) at com.sun.media.sound.DirectAudioDevice$DirectClip.implOpen(DirectAudioDevice.java:1280) at com.sun.media.sound.AbstractDataLine.open(AbstractDataLine.java:107) at com.sun.media.sound.DirectAudioDevice$DirectClip.open(DirectAudioDevice.java:1061) at com.sun.media.sound.DirectAudioDevice$DirectClip.open(DirectAudioDevice.java:1151) at Demo.playMp3(Demo.java:83)
最佳答案
显然,必须将 mp3 读入一个流中。该流必须被读入第二个流以对其进行解码。以下代码有效:
// read the file
AudioInputStream rawInput = AudioSystem.getAudioInputStream(new ByteArrayInputStream(data));
// decode mp3
AudioFormat baseFormat = rawInput.getFormat();
AudioFormat decodedFormat = new AudioFormat(
AudioFormat.Encoding.PCM_SIGNED, // Encoding to use
baseFormat.getSampleRate(), // sample rate (same as base format)
16, // sample size in bits (thx to Javazoom)
baseFormat.getChannels(), // # of Channels
baseFormat.getChannels()*2, // Frame Size
baseFormat.getSampleRate(), // Frame Rate
false // Big Endian
);
AudioInputStream decodedInput = AudioSystem.getAudioInputStream(decodedFormat, rawInput);
关于java - 用 java 播放 mp3 时出现 LineUnavailableException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3125934/
需要有关如何正确使用 Sphinx4 API 的帮助,我从这个链接阅读:http://cmusphinx.sourceforge.net/wiki/tutorialsphinx4,but当我运行 Di
我正在用Java将一些音频记录到ByteArrayOutputStream中,但是当我尝试播放该字节数组时,出现LineUnavailableException。这是我播放音频的代码: public
我正在开发一个java项目,帮助人们了解 map 上国家的位置。 当鼠标经过一个对象时,该程序会播放 .wav 声音文件,并且在 Windows 中完美运行,但今天我尝试在 Ubuntu 中进行同样的
我在我的Mac上创建了一个tictactoe(creategame类)游戏,将其上传到GitHub,在Windows 7上下载。然后运行eclipse项目的时候就出现了这个错误。在研究中,我认为这是一
我正在制作一个java语音聊天程序,服务器端语音类抛出此错误 javax.sound.sampled.LineUnavailableException: line with format PCM_SI
我正在尝试用 Java 循环 ogg 音频文件。我正在使用VorbisSPI . 我成功地播放了一次文件。当我尝试再次播放该文件或播放另一个文件时,我得到一个 LineUnavailableExcep
当执行下面的方法时: private void beep_player_1() { try { //clip_Player_2.close(); clip_Pl
我正在使用 Java Sound API 通过从 TargetDataLine 读取数据来捕获 Windows 计算机上的声音。如果我打开一行,从该行读取数据然后关闭它,它就可以正常工作。但是,如果我
我的目标是从 Java 播放 mp3 文件。对于我采用的每一种方法,它总是以 LineUnavailableException 失败。 AudioInputStream inputStream
我正在探索录音 API。这在我的本地计算机上运行良好,但是当我在 Heroku 上部署相同的内容时,以下行抛出异常: if (!AudioSystem.isLineSupported(info))
我有两个相似的波形(相似的格式),我用这段代码预加载它们 Clip click1; Clip click2; File soundFile = new File("click1.wav"); Audi
以下代码在 Windows 上完美运行: File soundFile = new File("bell.wav"); AudioInputStream ais = AudioSystem.getAu
我正在从 Eclipse 中的项目创建一个可运行的 jar,其中包含使用云语音进行语音识别的基本示例代码。无论如何,问题是当我从 Eclipse 运行代码时它工作正常,但是当我创建一个可运行的 jar
我是一名优秀的程序员,十分优秀!