gpt4 book ai didi

alert - Java FX 2警报声音

转载 作者:行者123 更新时间:2023-12-04 04:57:42 25 4
gpt4 key购买 nike

如何在Java FX 2中播放警报声音?
有没有一种使用操作系统默认通知声音的方法?

最佳答案

使用纯JavaFX播放声音

只需使用AudioClip的实例。这非常适合只播放单个短声音。

播放默认的通知声音

关于Windows操作系统,有一种方法可以通过java.awt.Toolkit访问属性。返回的声音属性是一个简单的Runnable,可以直接触发而无需担心声源等。

使用下面的示例查看这两个选项的工作方式(您必须在您的src文件夹中添加“alert.wav”)。

package audioplayer;

import java.awt.Toolkit;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
import javafx.scene.media.AudioClip;
import javafx.stage.Stage;

public class AudioPlayer extends Application {

private static final AudioClip ALERT_AUDIOCLIP = new AudioClip(AudioPlayer.class.getResource("/alert.wav").toString());

public static void main(String[] args) {
launch(args);
}

@Override
public void start(Stage primaryStage) {
VBox root = new VBox();
Scene scene = new Scene(root, 300, 250);

Button btn = new Button();
btn.setText("Play (My Sound)");
btn.setOnAction(new EventHandler<ActionEvent>() {

@Override
public void handle(ActionEvent event) {
AudioPlayer.ALERT_AUDIOCLIP.play();
}
});

Button btn2 = new Button();
btn2.setText("Play (Windows Default)");
btn2.setOnAction(new EventHandler<ActionEvent>() {

@Override
public void handle(ActionEvent event) {
final Runnable runnable = (Runnable) Toolkit.getDefaultToolkit().getDesktopProperty("win.sound.default");

if (runnable != null) {
runnable.run();
}
}
});

root.getChildren().add(btn);
root.getChildren().add(btn2);

primaryStage.setScene(scene);
primaryStage.show();
}
}

关于alert - Java FX 2警报声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10636194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com