JavaFX2 играть в WAV в фоновом режиме - PullRequest
0 голосов
/ 16 ноября 2018

Так что я пытаюсь бесконечно проигрывать песню в фоновом потоке, но когда музыка заканчивается, она не зацикливается, как было задумано.

Попробовал предложенное решение, но пока без радости! Вот код для основного класса, надеюсь, это поможет в решении проблемы.

Даже пытался зациклить нить, но без радости ...

Не уверен, почему он заканчивается после однократного воспроизведения полного файла, но не уверен, как его решить!

Вот код, который у меня есть. Любая помощь приветствуется

      public class Main extends Application {
  Media sugar = new Media(this.getClass().getResource("sounds/t1coSugar.wav").toExternalForm());

  /**
   * @param args the command line arguments
   */
  public static void main(String[] args) {
    Application.launch(Main.class, args);
  }

  @Override
  public void start(Stage primaryStage)
  {
    primaryStage.setTitle("pacman");
    primaryStage.setWidth(MazeData.calcGridX(MazeData.GRID_SIZE_X + 2)); //stage size x
    primaryStage.setHeight(MazeData.calcGridY(MazeData.GRID_SIZE_Y + 5)); //stage size y

//splash screen

//end of splash screen

    final Group root = new Group();
    final Scene scene = new Scene(root);
    root.getChildren().add(new Maze());
    primaryStage.setScene(scene);
    primaryStage.show();
    int playbackgroundmusic = playbackgroundmusic(); 

  }

  private int playbackgroundmusic() 
{
        Runnable task = new Runnable() {
                        @Override
            public void run() {
                playSugar(); //method of the music
            }
        };
        // Run the task in a background thread
        Thread backgroundThread = new Thread(task);
        // Terminate the running thread if the application exits
        backgroundThread.setDaemon(true);
        // Start the thread
        backgroundThread.start();                
                return 0;
    }


public void playSugar()
{
    MediaPlayer mediaplayer = new MediaPlayer(sugar);    
        mediaplayer.volumeProperty().setValue(0.4);
        mediaplayer.setStartTime(Duration.seconds(0));
        mediaplayer.setStopTime(Duration.seconds(67));
        mediaplayer.setAutoPlay(true);
        mediaplayer.setCycleCount(MediaPlayer.INDEFINITE);
        mediaplayer.play();

}
...