将mp3文件添加到Java

时间:2019-02-11 05:51:08

标签: java mp3

1 个答案:

答案 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是文件。但是,由于有其他选择,因此没有理由放弃:

  1. 将您的MP3文件转换为AudioStream可以使用的WAV。您 可以在Media IO上在线进行;
  2. 使用JavaFX和 javafx.scene.media.MediaPlayer 类。您可以找到一个example here;
  3. 使用第三方库,例如 JLayer来自JavaZOOM 这使这项任务非常容易,并且效果很好。是, 它很旧,但仍然可以使用。有几个第三方 可用的库,以便您的Java应用程序可以播放MP3音频 文件,只需使用Google搜索即可。
  

使用JLayer通过8个简单步骤播放MP3音频文件:

不,这不是JLayer的插件。有很多个示例,向您展示如何使用JLayer库,但我将快速向您展示如何完成此任务:

  1. 首先,下载JLayer zip 存档。您可以获取latest version here并将其解压缩;
  2. 现在复制并粘贴jl1.0.1.jar库文件(位于 解压缩档案的根目录)在安全的地方。 无论您将所有第三方Java库保存在何处;
  3. 在您特定的Java IDE中启动一个新的Java应用程序项目,然后 将其命名为PlayMP3;
  4. 为您的项目添加一个新类,其中将包含main()方法 并命名为PlayMP3。当您使用“新建项目”向导创建Java应用程序项目并选中创建主类选项时,NetBeans IDE会自动执行此操作;
  5. 在Java中将jl1.0.1.jar库应用于您的项目 IDE。使用您的特定IDE所需的任何方法来执行此操作;
  6. 将以下导入复制/粘贴到新的PlayMP3类中:

    import java.io.FileInputStream;
    import java.io.IOException;
    import javazoom.jl.decoder.JavaLayerException;
    import javazoom.jl.player.Player;
    
  7. 将以下代码复制/粘贴到新的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();
    }
    
  8. 确保您的音量调高。运行项目应用程序。等一两秒钟让您的歌曲 流入。尽情享受。

请注意,您的MP3播放应在其自己的线程中完成,以免占用EDT(事件调度线程),否则一旦调用play()方法,您的应用程序代码将不会继续,至少直到这首歌结束。

相关问题