JavaFX创建名为“Timer-XX”的守护程序线程

时间:2015-10-02 09:36:54

标签: java javafx mp3 media-player

我刚认识到每次播放MP3时我的程序都会创建一个Daemon Thread。并且它们被命名为“Timer-XX”,因为每个人都建议是的,XX是从0开始的递增整数。

好的,我可以理解JFX需要他们播放MP3,但实际上MP3只有3秒钟,其中一些会保留Running几分钟或更长时间,而其他人则正常运行out(我只是建议它应该是这样的。)

我想知道为什么他们首先被创造出来?为什么他们留下Running以及我如何能够驾驭它们因为据我所知Daemon并不意味着停止所以它仍然会占用内存和CPU,而我现在无法像糖果那样放弃我的项目状态。

以下是播放MP3的代码:

public class EffectPlayer {
private final String MP3_SUFFIX = ".mp3";
private final static int MAX_VOLUME = 100;
private MediaPlayer mediaPlayer;
private int masterVolume = 50;
private int effectVolume = 50;

public EffectPlayer(File f){
    if(isMP3(f)){
        Media mp3 = new Media(f.toURI().toString());
        mediaPlayer = new MediaPlayer(mp3);
        effectVolume = Integer.parseInt(GetConfig.getVar("USER_OPTION_VOLUME_EFFECT"));
        masterVolume = Integer.parseInt(GetConfig.getVar("USER_OPTION_VOLUME_MASTER"));
        if(effectVolume > masterVolume) effectVolume = masterVolume;
        mediaPlayer.setVolume(1 - (float)(Math.log(MAX_VOLUME - effectVolume) / Math.log(MAX_VOLUME)));
        mediaPlayer.setCycleCount(1);
        mediaPlayer.play();
    }
}

private boolean isMP3(File f) {
    return f.getName().toLowerCase().endsWith(MP3_SUFFIX);
}

}

JFX Panel在创建EffectPlayer对象的类中创建

@SuppressWarnings("unused")
public static JFXPanel fxPanel = new JFXPanel();

0 个答案:

没有答案