Как добавить mp3 в скалярную сцену? - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь добавить mp3 в мой scala gui, используя scalafx, но у меня проблемы с добавлением в сцену

это то, что у меня есть, но это не работает ...

val gameStage = new PrimaryStage {

  title = "Game Graphics"
  scene = new Scene(windowWidth, windowHeight) {
    var audio = new Media(url)
    var mediaPlayer = new MediaPlayer(audio)
    mediaPlayer.volume = 100
    mediaPlayer.play()
  }
}

1 Ответ

1 голос
/ 05 апреля 2019

Похоже, что одной из проблем является то, что вы не использовали экземпляр MediaView для добавления MediaPlayer к сцене. Кроме того, вероятно, будет лучше, если вы не начнете воспроизводить мультимедиа, пока не отобразится сцена.

Я думаю, вам нужно что-то вроде этого (как полное приложение):

import scalafx.application.JFXApp
import scalafx.application.JFXApp.PrimaryStage
import scalafx.scene.{Group, Scene}
import scalafx.scene.media.{Media, MediaPlayer, MediaView}

object GameGraphics
extends JFXApp {

  // Required info. Populate as necessary...
  val url = ???
  val windowWidth = ???
  val windowHeight = ???

  // Initialize the media and media player elements.
  val audio = new Media(url)
  val mediaPlayer = new MediaPlayer(audio)
  mediaPlayer.volume = 100

  // The primary stage is best defined as the stage member of the application.
  stage = new PrimaryStage {

    title = "Game Graphics"
    width = windowWidth
    height = windowHeight
    scene = new Scene {

      // Create a MediaView instance of the media player, and add it to the scene. (It needs
      // to be the child of a Group, or the child of a subclass of Group).
      val mediaView = new MediaView(mediaPlayer)
      root = new Group(mediaView)
    }

    // Now play the media.
    mediaPlayer.play()
  }
}

Кроме того, вы должны предпочесть от val до var, особенно если нет необходимости изменять связанные переменные после их определения.

Кстати, проверить код невозможно, поэтому рассмотрите возможность размещения минимального, полного и проверяемого примера в следующий раз.

...