JavaFX 미디어 플레이어에서 메타 데이터를 검색하려고합니다. 노래의 모든 메타 데이터를 사전으로 가져 와서 다른 노래의 메타 데이터 목록에 추가하는 클래스를 만들었습니다. 메타 데이터를 가져 오는 동안이 목록을 잠그려고했는데 일종의 동기화 개체를 추가 할 때마다 미디어 플레이어가 루프에 갇히게됩니다. 현재 모양은 다음과 같습니다.JavaPX의 MediaPlayer가 무한 루프에 걸렸습니다.
Media track = new Media(f.toURI().toString());
MediaPlayer mp = new MediaPlayer(track);
while(mp.getStatus() != Status.READY) {
// Wait until ready
try {
Thread.sleep(1000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(mp.getStatus().toString());
// Check for errors
if (mp.getError() != null) {
System.out.println(mp.getError());
try {
Thread.sleep(10000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
}
}
// Construct dictionary and add it to this.db
Hashtable<String, String> entry = new Hashtable<String, String>();
for (String key : mp.getMedia().getMetadata().keySet()) {
entry.put(key, mp.getMedia().getMetadata().get(key).toString());
}
if (entry != null) {
entry.put("file_path", mp.getMedia().getSource());
db.add(entry);
System.out.println(getByIndex(0).toString());
}
상태 인쇄는 항상 UNKNOWN을 인쇄하며 오류가 발생하지 않습니다. 여기에 무슨 일이 일어날 지 모릅니다. 감사!
EDIT- 언급해야 할 것은 내가 연주하려고하는 미디어가 내 코드의 다른 섹션에서 작동 한 MP3 파일입니다 (따라서 코덱은 문제가되지 않습니다).
예, 일반적인 진행은 '알 수 없음'-> '준비'입니다. 이것은 코드의 다른 부분에서이 작업을 수행하지만 위의 상태를 확인할 때 어떤 이유인지 알 수 없으므로 실속합니다. –