1
我是JavaFX的新手,我目前正在開發一款遊戲。javaFX mediaPlayer淡出當前播放音頻
我已經設法使用MediaPlayer
類在應用程序中設置背景音樂。
現在我需要的是創建一種方法,使歌曲淡出(而不是立即停止)。
我一直被困在閱讀有關過渡,但並不真正瞭解如何使用它們。
謝謝!
我是JavaFX的新手,我目前正在開發一款遊戲。javaFX mediaPlayer淡出當前播放音頻
我已經設法使用MediaPlayer
類在應用程序中設置背景音樂。
現在我需要的是創建一種方法,使歌曲淡出(而不是立即停止)。
我一直被困在閱讀有關過渡,但並不真正瞭解如何使用它們。
謝謝!
Timeline類可以更改任何JavaFX屬性。默認情況下,該屬性的值向目標值,這(我相信)插值將提供你想要的褪色:
Timeline timeline = new Timeline(
new KeyFrame(Duration.seconds(10),
new KeyValue(mediaPlayer.volumeProperty(), 0)));
timeline.play();
的鍵值指定要改變(體積)的財產,和目標值(零,即靜音)該屬性。
KeyFrame指定KeyValue的值應該生效的時間。
您應該也可以在'Timeline'的'onFinished'事件中停止'MediaPlayer' ... – fabian
太棒了!還有一個問題:如何讓程序等到淡出完成才能執行下一行代碼? – Franch
最簡單的方法是創建一個線程,其Runnable在整個過程中休眠,然後調用傳遞給'Platform.runLater'的另一個Runnable中的後續JavaFX代碼。還有其他方法,但這取決於淡入淡出後你想要做什麼。 – VGR