[英]playing sound with java 8 sdk
我嘗試發出提示音,我使用Toolkit.getDefaultToolkit()。beep(),並且它與Java 7兼容。
import java.awt.Toolkit;
public class testbeep {
public static void main(String[] args) {
Toolkit.getDefaultToolkit().beep();
}
}
但是,我需要使用JavaFX,並且JavaFX可以在Java 8上運行。有人可以幫助我配置項目嗎? 我在eclipse上工作,當我使用Java 8時,蜂鳴聲有效,但JavaFX無效,而當我使用Java 7時,蜂鳴聲不起作用,而JavaFX不工作。 我指出icetea-sound.jar在Java 7中存在,在Java 8中不存在,我可以在某個地方找到它嗎?
混合使用AWT和JavaFX可能會有些棘手。 但是,這似乎對我來說很好(Java 1.8.0_20; Mac OS X 10.9.5):
import java.awt.Toolkit;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class TestBeep extends Application {
@Override
public void start(Stage primaryStage) {
Toolkit awtToolkit = Toolkit.getDefaultToolkit();
Button button = new Button("Beep");
button.setOnAction(e -> awtToolkit.beep());
StackPane root = new StackPane(button);
primaryStage.setScene(new Scene(root, 250, 75));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
我不知道是否可以從AWT事件處理線程以外的其他線程調用toolkit.beep()
(在這里,我做到了)。
在編寫JavaFX應用程序時,您可能應該使用內置的JavaFX AudioClip API,而不是基於AWT的API。
AudioClip plonkSound = new AudioClip("http://somehost/path/plonk.mp3");
plonkSound.play();
有關受支持的音頻格式的說明,請參見JavaFX媒體Javadoc 。
確保您的系統滿足JavaFX媒體播放的最低要求 。
對於ubuntu,要使用JavaFX,您需要使用Oracle JDK或Emmanuel在JavaFX和OpenJDK中發布的Debian OpenJFX軟件包 。 Debian OpenJFX軟件包是相當新的,因此在現階段,如果可以的話,我建議您堅持使用Oracle Java運行時。
關於您關於icedtea-sound是否存在於Java 7中但不是Java 8的評論,可能是因為您的openjdk中的Java 7和Java 8是Oracle jdk,也許Oracle jdk並未附帶icedtea-sound(我沒有檢查)而且真的不知道)。 如果願意,可以嘗試使用openjdk 8 + debian openjfx軟件包,也許其中包括icedtea-sound庫。 純JavaFX媒體播放絕對不需要icedtea-sound,但使用awt beep命令可能需要icedtea-sound。 無論如何,我可能仍會建議使用JavaFX媒體庫而不是混入AWT庫的僅JavaFX解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.