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