/// <summary> /// Obtains an audio input stream with the specified encoding from the given /// audio input stream. /// </summary> /// <remarks> /// Obtains an audio input stream with the specified encoding from the given /// audio input stream. /// </remarks> /// <param name="targetEncoding">- desired encoding of the stream after processing.</param> /// <param name="sourceStream">- stream from which data to be processed should be read. /// </param> /// <returns> /// stream from which processed data with the specified target /// encoding may be read. /// </returns> /// <exception> /// IllegalArgumentException /// - if the format combination supplied /// is not supported. /// </exception> public override javax.sound.sampled.AudioInputStream getAudioInputStream(javax.sound.sampled.AudioFormat.Encoding targetEncoding, javax.sound.sampled.AudioInputStream sourceStream) { if (isConversionSupported(targetEncoding, sourceStream.getFormat())) { javax.sound.sampled.AudioFormat[] formats = getTargetFormats(targetEncoding, sourceStream .getFormat()); if (formats != null && formats.Length > 0) { javax.sound.sampled.AudioFormat sourceFormat = sourceStream.getFormat(); javax.sound.sampled.AudioFormat targetFormat = formats[0]; if (sourceFormat.Equals(targetFormat)) { return sourceStream; } else { if (sourceFormat.getEncoding() is org.xiph.speex.spi.SpeexEncoding && targetFormat .getEncoding().Equals(javax.sound.sampled.AudioFormat.Encoding.PCM_SIGNED)) { return new org.xiph.speex.spi.Speex2PcmAudioInputStream(sourceStream, targetFormat , -1); } else { if (sourceFormat.getEncoding().Equals(javax.sound.sampled.AudioFormat.Encoding.PCM_SIGNED ) && targetFormat.getEncoding() is org.xiph.speex.spi.SpeexEncoding) { return new org.xiph.speex.spi.Pcm2SpeexAudioInputStream(sourceStream, targetFormat , -1); } else { throw new System.ArgumentException("unable to convert " + sourceFormat.ToString() + " to " + targetFormat.ToString()); } } } } else { throw new System.ArgumentException("target format not found"); } } else { throw new System.ArgumentException("conversion not supported"); } }
/// <summary> /// Obtains the file types that this audio file writer can write from the /// audio input stream specified. /// </summary> /// <remarks> /// Obtains the file types that this audio file writer can write from the /// audio input stream specified. /// </remarks> /// <param name="stream"> /// - the audio input stream for which audio file type support /// is queried. /// </param> /// <returns> /// array of file types. If no file types are supported, an array of /// length 0 is returned. /// </returns> public override javax.sound.sampled.AudioFileFormat.Type[] getAudioFileTypes(javax.sound.sampled.AudioInputStream stream) { if (stream.getFormat().getEncoding() is org.xiph.speex.spi.SpeexEncoding) { return SPEEX_FORMAT; } else { return NO_FORMAT; } }