起初我遇到了麻烦,但我发现使用它很有效。
mediaPlayer.getMedia().getMetadata().addListener(new MapChangeListener<String, Object>(){
@Override
public void onChanged(Change<? extends String, ?> change) {
if(change.wasAdded()){
if(change.getKey().equals("artist"))
setArtist(change.getValueAdded().toString());
else if(change.getKey().equals("title"))
setTitle(change.getValueAdded().toString());
else if(change.getKey().equals("year"))
setYear(change.getValueAdded().toString());
}
}
});
另外我读到媒体数据在初始化后并不总是在那里,因此调用该mediaPlayer.setOnReady()方法可以确保数据在那里。
例子:
mediaPlayer.setOnReady(new Runnable(){
@Override
public void run() {
setTrackLength(mediaPlayer.getMedia().getDuration().toMinutes());
mediaPlayer.currentTimeProperty().addListener(progressChangeListener);
}
});