答案 0 :(得分:0)
请...不要发布您的代码图片。认为有人想要输入您的代码来测试它是冒犯性的,而仅仅复制/粘贴它会容易得多。无论如何...
您将得到仅显示Error
的消息框,因为这是在发生错误时告诉您的代码的显示。我不得不说....关于错误可能是什么,这不是一个非常有用的描述,这是非常可悲的。帮自己一个忙,而不是在JOptionPane消息框对话框中仅出现“错误” ,尝试(至少)尝试放置 e.getMessage(),这将提供更多信息。问题的精确指示,例如:
JOptionPane.showMessageDialog(null, e.getMessage());
如果您是初学者Java编程,也没关系,如果您打算执行编写代码以播放MP3文件的任务,那么您至少应该学习如何处理异常(错误) 。这些异常实际上确实可以帮助您成功完成项目,因此,详细接收它们并采取措施纠正所提出的问题可确保无故障的用户体验。
现在,如果您已经完成了所要求的工作并修改了JOptionPane,然后运行您的应用程序,您很可能会收到类似以下的消息:
Could not create Audio Stream from Input Stream.
好吧...对于该问题,它有更多信息,这是AudioStream不支持MP3文件的事实。 WAV是文件,但MP3是文件。但是,由于有其他选择,因此没有理由放弃:
使用JLayer通过8个简单步骤播放MP3音频文件:
不,这不是JLayer的插件。有很多个示例,向您展示如何使用JLayer库,但我将快速向您展示如何完成此任务:
jl1.0.1.jar
库文件(位于
解压缩档案的根目录)在安全的地方。
无论您将所有第三方Java库保存在何处; jl1.0.1.jar
库应用于您的项目
IDE。使用您的特定IDE所需的任何方法来执行此操作; 将以下导入复制/粘贴到新的PlayMP3类中:
import java.io.FileInputStream;
import java.io.IOException;
import javazoom.jl.decoder.JavaLayerException;
import javazoom.jl.player.Player;
将以下代码复制/粘贴到新的PlayMP3类中 main() 方法:
try {
// Try With resources used here to auto close the FileInputStream
try (FileInputStream fis = new FileInputStream("C:\\PathTo\\YourSong.mp3")) {
Player player = new Player(fis);
System.out.println("YourSong.mp3 is now Playing....");
player.play();
System.out.println("YourSong.mp3 is now FINISHED Playing!");
}
catch (IOException ex) {
ex.printStackTrace();
}
}
catch (JavaLayerException ex) {
ex.printStackTrace();
}
请注意,您的MP3播放应在其自己的线程中完成,以免占用EDT(事件调度线程),否则一旦调用play()方法,您的应用程序代码将不会继续,至少直到这首歌结束。