public override void initialize() { base.initialize(); this.audioList = new LinkedBlockingQueue(); DataLine.Info info = new DataLine.Info(ClassLiteral <TargetDataLine> .Value, this.desiredFormat); if (!AudioSystem.isLineSupported(info)) { this.logger.info(new StringBuilder().append(this.desiredFormat).append(" not supported").toString()); AudioFormat nativeAudioFormat = DataUtil.getNativeAudioFormat(this.desiredFormat, this.getSelectedMixer()); if (nativeAudioFormat == null) { this.logger.severe("couldn't find suitable target audio format"); } else { this.finalFormat = nativeAudioFormat; this.doConversion = AudioSystem.isConversionSupported(this.desiredFormat, nativeAudioFormat); if (this.doConversion) { this.logger.info(new StringBuilder().append("Converting from ").append(this.finalFormat.getSampleRate()).append("Hz to ").append(this.desiredFormat.getSampleRate()).append("Hz").toString()); } else { this.logger.info(new StringBuilder().append("Using native format: Cannot convert from ").append(this.finalFormat.getSampleRate()).append("Hz to ").append(this.desiredFormat.getSampleRate()).append("Hz").toString()); } } } else { this.logger.info(new StringBuilder().append("Desired format: ").append(this.desiredFormat).append(" supported.").toString()); this.finalFormat = this.desiredFormat; } }
public static AudioFormat getNativeAudioFormat(AudioFormat format) { return(DataUtil.getNativeAudioFormat(format, null)); }