JavaFX2在后台播放WAV

时间:2018-11-15 21:59:38

标签: javafx javafx-2

因此,我试图在后台线程上不确定地播放歌曲,但是当音乐结束时,它不会像原先那样循环播放。

尝试了提供的解决方案,但还不满意!这是主类的代码,希望这有助于解决问题。

即使试图循环线程,也没有喜悦...

不确定一次播放完整文件后为什么会结束,但不确定如何解决!

这是我的代码。欢迎任何帮助

      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();

}

0 个答案:

没有答案