下面利用反射机制来动态加载:
public void determinePlayerType() { // use most -> less use isSupportSound = true;
for (int i = 0; i < supportedPlayerTypes.length; i++) { // try to load a proper sound Player try { Class.forName(supportedPlayerTypes[i]); //加载当前的Player类型
playerType = i; //保存加载成功的类的类型 return; } catch (Exception e) { //加载不成功,说明不支持,继续加载下一种 e.printStackTrace(); } } isSupportSound = false; }
2. 下面就可以根据在载成功的类型来加载可以播放的声音资源了
public void createPlayer(String name) { if (!isSupportSound) return;
switch (playerType) { case STANDARD: // for MIDI case NEC: createPlayerFactory("/" + name + ".mid"); break; case NOKIA: //for ott createPlayerFactory("/" + name + ".ott"); break; case SAMSUNG: // for mmf createPlayerFactory("/" + name + ".mmf"); break; } }
|