public Soundbank getSoundbank(URL var1) throws InvalidMidiDataException, IOException {
Objects.requireNonNull(var1);
if (Boolean.getBoolean("jdk.sound.jarsoundbank") && isZIP(var1)) {
ArrayList var2 = new ArrayList();
URLClassLoader var3 = URLClassLoader.newInstance(new URL[]{var1});
InputStream var4 = var3.getResourceAsStream("META-INF/services/javax.sound.midi.Soundbank");
if (var4 == null) {
return null;
} else {
try {
BufferedReader var5 = new BufferedReader(new InputStreamReader(var4));
for(String var6 = var5.readLine(); var6 != null; var6 = var5.readLine()) {
if (!var6.startsWith("#")) {
try {
Class var7 = Class.forName(var6.trim(), false, var3);
if (Soundbank.class.isAssignableFrom(var7)) {
Object var8 = ReflectUtil.newInstance(var7);
var2.add((Soundbank)var8);
}
} catch (ClassNotFoundException var14) {
} catch (InstantiationException var15) {
} catch (IllegalAccessException var16) {
}
}
}
} finally {
var4.close();
}
if (var2.size() == 0) {
return null;
} else if (var2.size() == 1) {
return (Soundbank)var2.get(0);
} else {
SimpleSoundbank var18 = new SimpleSoundbank();
for(Soundbank var20 : var2) {
var18.addAllInstruments(var20);
}
return var18;
}
}
} else {
return null;
}
}
没有评论