JavaFX 使用 NetBeans 将 MP3 嵌入到 jar(在 jar 中)
我在 NetBeans 中编写了我的第一个 JavaFX 包,然后我想在 jar 中添加声音,一个 mp3 音乐文件,嵌入到 jar 中,以便我可以通过电子邮件将 jar 发送给我的朋友,音乐就会在他们的计算机上播放. 感谢 StackOverflow 的帮助。特别感谢说“将你的音乐文件放入 JAR,getResourceAsStream() 是你想要使用的 API”的成员。他让我走上了正轨,尽管我最终使用了 getResource()。有用。
第 1 步:首先,我在 NetBeans 中点击运行时播放音乐。
第 2 步:我想让音乐循环播放(重复)。最终我做对了,感谢 StackOverflow 的成员。请看我的源代码。
第 3 步:最后我将 mp3 嵌入到 jar 中。现在,这很重要。起初音乐在我的电脑上播放,但罐子从我的硬盘上读取了它。当我更改了 mp3 的名称时,jar 崩溃了,它无法运行,找不到 mp3。我必须将 mp3 嵌入到 jar 中,将其放入 jar 中(在 jar 中),否则它不会在其他人的计算机上播放。这就是 getResource() 发挥作用的地方。
第 4 步:然后我将我的罐子通过电子邮件发送给朋友。一些服务提供商不信任罐子,他们将电子邮件发回给我,但未送达。其他服务提供商没有问题并发送了电子邮件。那么,我做了什么?我将 *.jar 的名称更改为 *.mp4 并且电子邮件已发送,我要求我的朋友将其从 *.mp4 更改回 *.jar。有效。
这是我的源代码。我确信它并不完美,但它可以工作,这要感谢 StackOverflow。
/* Of course, one needs to import the following gizmo’s (and others): */
import javafx.util.Duration;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
/* I want to EMBED the music inside the jar (in the jar).
The secret seems to be getResource. The source code starts here,
to EMBED the sound (DollyParton.mp3) into the jar: */
//************************ begin the music ***********************
@Override public void start(Stage primaryStage) throws Exception {
init(primaryStage);
primaryStage.show();
play();
}
public static void main(String[] args) {
launch(args);
}
MediaPlayer musicplayer; {
/* Put your music file IN THE JAR, "getResourceAsStream()" is
the API you want to use. Put the DollyParton.mp3 into the Windows
folder src/rockymountain. NetBeans automatically copies the mp3
to the folder build/classes/rockymountain. */
Media mp3MusicFile = new Media(getClass().getResource("DollyParton.mp3").toExternalForm());
musicplayer = new MediaPlayer(mp3MusicFile);
musicplayer.setAutoPlay(true);
musicplayer.setVolume(0.9); // from 0 to 1
//***************** loop (repeat) the music ******************
musicplayer.setOnEndOfMedia(new Runnable() {
public void run() {
musicplayer.seek(Duration.ZERO);
}
});
//*************** end of loop (repeat) the music **************
}
//**************************** end of music *************************
我将 mp3 放入 Windows 文件夹 src/rockymountain。然后 NetBeans 自动将 mp3 复制到文件夹 build/classes/rockymountain。NetBeans 不会将 mp3 复制到文件夹 /resources,这是我不必要地创建的文件,因为有人这么说。/resources 文件夹不需要,它保持为空。
使用 NetBeans 创建 Java ARchive (jar) 文件,如下所示:
右键单击项目名称
选择属性
点击包装
编译后检查 Build JAR
检查压缩 JAR 文件
单击确定接受更改
右键单击项目名称
选择清理并构建
JAR 文件已构建。要在 NetBeans 中查看它:
单击文件选项卡
展开 ProjectName >> dist(分布)。jar 文件位于 dist 文件夹中。