2016-06-17 7 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(); 

KeyValue определяет свойство, которое вы хотите изменить (громкость), а целевое значение (ноль, т. е. немой) для этого свойства.

KeyFrame указывает время, в течение которого значение KeyValue должно быть в силе.

+1

Возможно, вы также остановите «MediaPlayer» в событии 'onFinished'' Timeline' ... – fabian

+0

Wow great! еще один вопрос: как я могу заставить программу подождать, пока не погаснет, чтобы выполнить следующую строку кода? – Franch

+0

Самый простой способ - создать Thread, Runnable которого спящий на время, затем вызывает последующий код JavaFX в другом Runnable, переданном в 'Platform.runLater'. Есть и другие способы, но это зависит от того, что вы хотите сделать после завершения затухания. – VGR