如何在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被記錄