2016-06-17 129 views
1

我是JavaFX的新手,我目前正在開發一款遊戲。javaFX mediaPlayer淡出當前播放音頻

我已經設法使用MediaPlayer類在應用程序中設置背景音樂。

現在我需要的是創建一種方法,使歌曲淡出(而不是立即停止)。

我一直被困在閱讀有關過渡,但並不真正瞭解如何使用它們。

謝謝!

回答

2

Timeline類可以更改任何JavaFX屬性。默認情況下,該屬性的值向目標值,這(我相信)插值將提供你想要的褪色:

Timeline timeline = new Timeline(
    new KeyFrame(Duration.seconds(10), 
     new KeyValue(mediaPlayer.volumeProperty(), 0))); 
timeline.play(); 

的鍵值指定要改變(體積)的財產,和目標值(零,即靜音)該屬性。

KeyFrame指定KeyValue的值應該生效的時間。

+1

您應該也可以在'Timeline'的'onFinished'事件中停止'MediaPlayer' ... – fabian

+0

太棒了!還有一個問題:如何讓程序等到淡出完成才能執行下一行代碼? – Franch

+0

最簡單的方法是創建一個線程,其Runnable在整個過程中休眠,然後調用傳遞給'Platform.runLater'的另一個Runnable中的後續JavaFX代碼。還有其他方法,但這取決於淡入淡出後你想要做什麼。 – VGR

相關問題