private static void dumpLineInfo(string text, Line.Info[] array) { int num = 0; if (array != null) { int num2 = array.Length; for (int i = 0; i < num2; i++) { Line.Info info = array[i]; if (info is DataLine.Info) { AudioFormat[] formats = ((DataLine.Info)info).getFormats(); AudioFormat[] array2 = formats; int num3 = array2.Length; for (int j = 0; j < num3; j++) { AudioFormat audioFormat = array2[j]; [email protected](new StringBuilder().append(text).append(audioFormat).toString()); } num++; } else if (info is Port.Info) { [email protected](new StringBuilder().append(text).append(info).toString()); num++; } } } if (num == 0) { [email protected](new StringBuilder().append(text).append("none").toString()); } }
public static AudioFormat getNativeAudioFormat(AudioFormat format, Mixer mixer) { Line.Info[] targetLineInfo; if (mixer != null) { targetLineInfo = mixer.getTargetLineInfo(new Line.Info(ClassLiteral <TargetDataLine> .Value)); } else { targetLineInfo = AudioSystem.getTargetLineInfo(new Line.Info(ClassLiteral <TargetDataLine> .Value)); } AudioFormat audioFormat = null; Line.Info[] array = targetLineInfo; int num = array.Length; for (int i = 0; i < num; i++) { Line.Info info = array[i]; AudioFormat[] formats = ((DataLine.Info)info).getFormats(); AudioFormat[] array2 = formats; int num2 = array2.Length; for (int j = 0; j < num2; j++) { AudioFormat audioFormat2 = array2[j]; if (audioFormat2.getEncoding() == format.getEncoding() && audioFormat2.isBigEndian() == format.isBigEndian() && audioFormat2.getSampleSizeInBits() == format.getSampleSizeInBits() && audioFormat2.getSampleRate() >= format.getSampleRate()) { audioFormat = audioFormat2; break; } } if (audioFormat != null) { break; } } return(audioFormat); }