播放声音时出现Javafx NullPointerException

时间:2016-05-04 02:01:43

标签: java audio javafx nullpointerexception

我正在开发Javafx游戏并尝试使用以下代码实现一些声音:

def show
  @user = User.find(params[:id])

  @account = # load account
  @sales = # load sales
  ..

  render :json => {
     "user": user,
     "account": @account.map do |a|
        JSON.parse(a.to_json(include: :addresses))
      end,
      "sales": @sales.map do |s| 
        JSON.parse(s.to_json(include: :products))
      end
  }
end

此代码在任何方法之前在主类中实例化。我有一个名为JavaFxImages的模块,它包含我的所有资源,包括我的声音,我已经成功地通过代码URL laserResource = getClass().getResource("LaserBlast.wav"); AudioClip laserPlayer = new AudioClip(laserResource.toString()); 从文件夹访问ImageView的图像。 但是,当我运行游戏时,我的音频剪辑行会出现NullPointerException。我花了这么多时间研究并尝试以各种不同的方式来访问这个资源。我尝试了很多URL的排列(“JavaFxImages / LaserBlast.wav”,Desktop / JavaFxImages / LaserBlast.wav等等),但每次都有相同的错误。我真的很茫然代码有问题。我非常感谢能给予的任何帮助。 提前致谢!

下面给出了完整的错误消息。

Image asteroid = new Image("Asteroid.png");

1 个答案:

答案 0 :(得分:-1)

您的错误主要发生在Itellij IDEA-Javafx项目上

代替:

URL laserResource = getClass().getResource("LaserBlast.wav");
AudioClip laserPlayer = new AudioClip(laserResource.toString());

使用:

//By default your Package_NAME is: sample
File laserResource = new File("src/Package_NAME/LaserBlast.wav");
AudioClip laserPlayer = new AudioClip(laserResource.toURI().toString());
相关问题