当前位置: 首页 > 知识库问答 >
问题:

在java中播放mp3文件 - nullpointerexception

龙浩博
2023-03-14

我正在创建一个带有背景音乐的应用程序。我试着在课堂上演奏那首音乐:

import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;

public class SoundPlayer {

    public static void playSound() {
        try{
              AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(SoundPlayer.class.getResource("/Music.mp3"));
             Clip clip = AudioSystem.getClip();
             clip.open(audioInputStream);
             clip.start( );
            }
           catch(Exception ex) {
               ex.printStackTrace();
           }

    }
}

我试过了:

SoundPlayer.class.getResource("/Music.mp3")
SoundPlayer.class.getResource("Music/Music.mp3")
SoundPlayer.class.getResource("./Music/Music.mp3")

当我把它放在我的文件的根目录中并使用它时:

SoundPlayer.class.getResource("Music.mp3")

我得到这个错误:javax.sound.sampled。不受支持的AudioFileException:无法从输入URL获取音频输入流更新我尝试使用JavaFX:

package com.audio;

import java.nio.file.Paths;

import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;

public class PlayAudio {

    public static void PlayMP3() {
        Media media = new Media(Paths.get("Music/Music.mp3").toUri().toString());
        MediaPlayer player = new MediaPlayer(media);
        player.play();
    }
} 

但是我得到了错误:

Exception in thread "Thread-2" java.lang.IllegalStateException: Toolkit not initialized
    at com.sun.javafx.application.PlatformImpl.runLater(Unknown Source)
    at com.sun.javafx.application.PlatformImpl.runLater(Unknown Source)
    at javafx.application.Platform.runLater(Unknown Source)
    at javafx.scene.media.Media$_MetadataListener.onMetadata(Unknown Source)
    at com.sun.media.jfxmediaimpl.MetadataParserImpl.done(Unknown Source)
    at com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.parse(Unknown Source)
    at com.sun.media.jfxmediaimpl.MetadataParserImpl.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Toolkit not initialized
    at com.sun.javafx.application.PlatformImpl.runLater(Unknown Source)
    at com.sun.javafx.application.PlatformImpl.runLater(Unknown Source)
    at javafx.application.Platform.runLater(Unknown Source)
    at javafx.scene.media.MediaPlayer.init(Unknown Source)
    at javafx.scene.media.MediaPlayer.<init>(Unknown Source)
    at com.audio.PlayAudio.PlayMP3(PlayAudio.java:12)
    at com.Frame1$2.actionPerformed(Frame1.java:61)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)

此行中的错误:MediaPlayer Player=new MediaPlayer(媒体);如何初始化工具包?

共有1个答案

能业
2023-03-14

尝试将文件放在根目录中。也许您可以从那里访问它,使用MainClass.getResourceAsStream(“file.mp3”)

编辑:使用. wav文件

 类似资料:
  • 问题内容: 如何在Java应用程序中播放和文件?我正在使用。我尝试在互联网上查找类似以下示例的内容: 但是,这只会播放文件。 问题答案: 如何在Java应用程序中播放和文件?我正在使用。我尝试在互联网上查找类似以下示例的内容: 但是,这只会播放文件。

  • 当我使用MediaPlayer播放mp3文件时,系统会报告错误日志:。但是RealPlayer是正常的。 我发现它的错误只发生在更高的ROM版本。像4.0版本一样,它有错误。在2.3版中,它没有这个错误。 代码: 日志猫错误:

  • 我遵循了本教程:http://what-when-how.com/javafx-2/playing-audio-using-the-media-classes-javafx-2-part-1/ 我有相应的资源文件夹在相应的目录中。类文件,但我仍然不能播放音频。mp3文件与教程中的不同,但我也有一个. wav等效文件,发现JavaFX可以开箱播放*. wav文件,但不能播放mp3文件。怎么回事啊?

  • 标记为“good”的文件可以正确播放,而标记为“bad”的文件则不能。两个文件在同一个目录中;两个文件都使用音乐播放器播放;并且这两个文件都可以在Windows7机器上使用Python3.4和pygame。

  • 我正试图从Dropbox下载一些音频文件供用户下次在没有互联网的情况下使用,因此代码实际上下载了该文件,但我在播放该音频时遇到了问题,我不知道是否需要解析下载的文件或其他什么,希望您能提供帮助 下载文件并播放它类,它在执行后播放它,或者至少它尝试 我在日志上发现了这个错误 问题是试图播放下载的文件,即使尝试播放它与Android本地播放器它说"该播放器不支持这种类型的音频文件",所以我不知道我是否

  • 我有一个不和谐的机器人写在不和谐的js。我有一个命令,在语音频道播放mp3文件。 如果我在我的windows pc上运行bot,一切都会正常工作。机器人加入频道,播放文件,然后再次离开。如果我在我的Ubuntu18.04虚拟机上运行bot,bot会在不播放文件的情况下加入并立即断开连接。 mp3文件的路径是绝对的。我已经尝试使用connection.play文件(路径)代替相同的问题。我尝试使用o