Java:音乐停止2次,运行时间

时间:2016-11-18 20:10:18

标签: java javafx

[对不起,如果这个问题中存在一些拼写错误(不在程序本身中),我通常不会说英语]

我正在制作一个带有一些背景音乐的节目,我为音乐做了第二节课。它在我添加部件之前工作正常,它检查“头程序”是否仍在运行(启动程序[自制]创建一个空文件,“头程序”在其中写入一些东西说它是启动后,我关闭“头程序”,“关闭”写入该文件,此程序读取它,此程序停止),当我添加该部分时,音乐在启动后立即停止,当音乐播放时时间,因为它是一个定时循环,它再次发生,但当它开始一个Tirth时间它正常工作,就像没有任何错误。我看着它并在网上查找可能的错误但没有发现任何东西,这很糟糕。 这是我的代码:

import javax.swing.*;
import java.io.*;

import javafx.embed.swing.JFXPanel;
import javafx.application.Platform;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;

public class Music{
    public static void main (String[] args){
        int x = 0;

        File f = new File("bootVeryfication.dat");
        BufferedReader br;
        String text = "";

        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new JFXPanel();
                Platform.runLater(new Runnable() {
                    public void run() {
                    }
                });
            }
        });
        while(true){
                    //Starting Music
            try{
                String bip = "texures\\music.mp3";
                Media hit = new Media(new File(bip).toURI().toString());
                MediaPlayer mediaPlayer = new MediaPlayer(hit);
                mediaPlayer.play(); 
            }catch(IllegalArgumentException e){
                System.out.println(e.getMessage());
            }

            while(x != 145000){        //This is (probably) the part where the music stops
                try{
                    Thread.sleep(1);
                } catch(InterruptedException e){
                    Thread.currentThread().interrupt();
                }
                x = x + 1;

                try{
                    br = new BufferedReader(new FileReader(f));
                    String line;
                    while((line = br.readLine()) != null){
                        text += line;
                    }
                }catch(IOException e){
                    e.printStackTrace();
                }

                if(text.equals("close")){
                    System.exit(0);
                }
            }
            x = 0;
        }
    }
}

你能帮帮我吗?

P.S。 我知道这里有一个无限循环。

0 个答案:

没有答案