2016-06-17 132 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

相关问题