我想在mp3
中播放java
文件。我正在使用代码,但显示异常无法从输入文件中获取音频输入流。
我的源代码是:
try {
System.out.println("Start");
File f = new File("E:\\malayalam good song\\01_ISHTAMANU.MP3");
AudioInputStream audio = AudioSystem.getAudioInputStream(f);
System.out.println("Start");
AudioFormat format = audio.getFormat();
DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
SourceDataLine auline = (SourceDataLine) AudioSystem.getLine(info);
auline.open(format);
auline.start();
int nBytesRead = 0;
byte[] abData = new byte[524288];
while (nBytesRead != -1) {
nBytesRead = audio.read(abData, 0, abData.length);
if (nBytesRead >= 0) {
auline.write(abData, 0, nBytesRead);
}
}
} catch (Exception E) {
System.out.println("Exception"+E.getMessage());
}
答案 0 :(得分:2)
在类路径中添加 mp3plugin.jar 。
答案 1 :(得分:1)
如果你在java 7
,那里有新的(JavaFX
)类更容易使用:
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
...
...
try {
File f = new File("E:\\malayalam good song\\01_ISHTAMANU.MP3");
Media hit = new Media(f.toURI().toString());
MediaPlayer mediaPlayer = new MediaPlayer(hit);
mediaPlayer.play();
} catch(Exception ex) {
ex.printStackTrace();
System.out.println("Exception: " + ex.getMessage());
}
如果您不在Java 7
,则可以从 here 中抓取JavaFX
个罐子。
答案 2 :(得分:0)
您应将wav音频文件转换为未压缩格式的8khz,16位单声道PCM。然后它将起作用。
答案 3 :(得分:0)
伙计们,我通过了这个例外的夜间问题,很难找到解决方案,首先,在大多数情况下,您不需要更改代码或类似的东西,您只需要按照本教程转换您拥有的 wav 格式:here
但是线程开始here
在那之后我遇到了另一个问题,基本上是说我无法播放声音,因为 iceadtea-sound 不在库中,是的,伙计,为了解决这个问题,我运行了一个命令:
apt-get install openjdk-8-jre openjdk-8-jdk
我在here
在解决此错误后,我遇到了另一个名为“getAudioInputStream 格式无效,尝试在 Java 中播放声音”
我在 stackoverflow here
上用这个答案解决的那个错误在这之后,终于播放了一首歌