我正在开发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");
答案 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());