如何在Java FX 2中播放警报声音? 有没有使用操作系统默认通知声音的方法?Java FX 2警报声音
4
A
回答
6
播放声音纯净的JavaFX
只需使用的AudioClip
一个实例。这一款非常适合播放单曲短片。
播放默认通知声音
关于Windows操作系统有一种方法通过java.awt.Toolkit
访问属性。返回的声音属性是一个简单的Runnable
,可以直接触发,而不用担心声源等问题。
使用下面的示例查看两个选项如何工作(您必须将'alert.wav'添加到src文件夹中) 。
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();
}
}
3
这是我的播放声音,
private void playMedia(Media m){
if (m != null){
MediaPlayer mp = new MediaPlayer(m);
mp.play();
}
}
public void playSomeSound(){
try{
Media someSound = new Media(getClass().getResource("some-sound.mp3").toString());
playMedia(someSound);
}catch(Exception ex){
GeeLogger.error(getClass(), ex.getLocalizedMessage(), ex);
}
}
不知道这么细节虽然。希望能帮助到你。
5
目前没有在JavaFX的本身来访问OS默认警报声(你可以用JavaFX的触发的事件回放射后不理audioclips以及跟踪媒体音频如MP3)。
有一项开放功能请求:RT-21634(任何人都可以注册查看jira)。
您可以通过AWT发出蜂鸣声:
Toolkit.getDefaultToolkit().beep();
打印嘟嘟的性格,很好地命名为007应根据谷歌搜索工作,但没有我的机器上 - 我猜它访问机器蜂鸣器,而不是扬声器系统和我的机器不得连接或启用蜂鸣器。
System.out.print("\007");
System.out.flush();
相关问题
- 1. 报警JavaScript,更改声音
- 2. 如何播放“正面”报警声音?
- 3. 带声音的Android警报对话框
- 4. 带有声音,振动的android警报
- 5. 安卓报警声音不起作用
- 6. 如何阻止消息声音警报?
- 7. 激活iPhone报警并发出声音
- 8. 错误终止/崩溃时的Java(FX)故障安全警报?
- 9. iPhone iOS7系统声音(振铃和警报)音量控制
- 10. 音频警报在php
- 11. Java FX:声明式与程序式
- 12. 页内声音警告
- 13. 声呐差异警报
- 14. 禁用警报声在Firefox
- 15. 如何规划警报声?
- 16. 挑选警报声 - swift
- 17. Java声音| UnsupportedAudioFileException
- 18. IOException java声音
- 19. 警报(通知)声音在iOs中突然停止工作
- 20. 如何更改推送通知警报声音
- 21. 自定义推送警报声音无法更新?
- 22. 如何在使用Cocoa的OSX中触发声音警报?
- 23. 当发出警报通知时播放声音
- 24. VOIP推“APS”键高优先级通知 - 警报/徽章/声音
- 25. 播放声音并同时显示警报javascript
- 26. 在Excel中当单元格更改时发出声音警报
- 27. 如何使用声音进行本地通知警报
- 28. 添加声音警报以及吐司通知?
- 29. 当警报被触发时有声音播放
- 30. 播放警报声音(振动)虽然AudioQueue被记录