我有一个简单的媒体播放器,并且在需要检索媒体元数据的其中一个类中。到目前为止,我已经成功地提取了元数据,但是当我尝试使用这些值时,返回的字符串是空白的。字符串的更改值
String album = "", artist = "", title = "", year = "";
...
public void addListItems(final Pane layout, final Stage stage, final Scene scene) {
if (list != null) {
for (final String s : list) {
final String[] sList = s.split("\\\\");
Media media;
try {
media = new Media(new File(s).toURI().toURL().toString());
media.getMetadata().addListener(new MapChangeListener<String, Object>() {
public void onChanged(Change<? extends String, ? extends Object> arg0) {
handleMetadata(arg0.getKey(), arg0.getValueAdded());
}
});
} catch (MalformedURLException e) {
e.printStackTrace();
}
lab = new Button(album + sList[sList.length-1]);
layout.getChildren().add(lab);
lab.setPrefWidth(scene.getWidth());
lab.setAlignment(Pos.CENTER_LEFT);
lab.setStyle("-fx-border-color: black");
lab.setStyle("-fx-backgound-color: lightgray");
lab.setTooltip(new Tooltip(lab.getText()));
lab.setOnMouseClicked(new EventHandler<MouseEvent>() {
public void handle(MouseEvent arg0) {
try {
AudioBitsMediaPlayer.mediaPlayer = AudioBitsMediaPlayer.buildMediaPlayer(s, AudioBitsMediaPlayer.status, AudioBitsMediaPlayer.timeStatus);
} catch (MalformedURLException e) {
e.printStackTrace();
}
AudioBitsMediaPlayer.currentDir = new File(new File(s).getParentFile().getAbsolutePath());
AudioBitsMediaPlayer.status.setText("Audio File");
stage.close();
}
});
scene.heightProperty().addListener(new ChangeListener<Number>() {
public void changed(ObservableValue<? extends Number> arg0, Number arg1, Number arg2) {
lab.setPrefWidth(scene.getWidth());
layout.setPrefHeight(scene.getHeight());
}
});
}
}
}
...
public void handleMetadata(String key, Object value) {
if (key.equals("album")) {
album = value.toString(); //Here album returns as value.toString() correctly
} else if (key.equals("artist")) {
artist = value.toString();
} else if (key.equals("title")) {
title = value.toString();
} else if (key.equals("year")) {
year = value.toString();
}
}
我已经完成了关于这个主题的研究,但是我查看的结果并没有帮助我的情况。我非常感谢任何帮助。
可能是艺术家=(字符串)值可能发生;作品?? – HCarrasko
谢谢,但这是value.toString()的等价物。它没有区别 – fmi11
你可以尝试做调试值吗?它包含的东西? –