/**
* Obtains an audio input stream of the indicated encoding, by converting
* the provided audio input stream.
*
* @param targetEncoding the desired encoding after conversion
* @param sourceStream the stream to be converted
* @return an audio input stream of the indicated encoding
* @throws IllegalArgumentException if the conversion is not supported
* @throws NullPointerException if {@code targetEncoding} or
* {@code sourceStream} are {@code null}
* @see #getTargetEncodings(AudioFormat.Encoding)
* @see #getTargetEncodings(AudioFormat)
* @see #isConversionSupported(AudioFormat.Encoding, AudioFormat)
* @see #getAudioInputStream(AudioFormat, AudioInputStream)
*/
public static AudioInputStream getAudioInputStream(AudioFormat.Encoding targetEncoding,
AudioInputStream sourceStream) {
Objects.requireNonNull(targetEncoding);
Objects.requireNonNull(sourceStream);
if (sourceStream.getFormat().getEncoding().equals(targetEncoding)) {
return sourceStream;
}
List<FormatConversionProvider> codecs = getFormatConversionProviders();
for(int i = 0; i < codecs.size(); i++) {
FormatConversionProvider codec = codecs.get(i);
if( codec.isConversionSupported( targetEncoding, sourceStream.getFormat() ) ) {
return codec.getAudioInputStream( targetEncoding, sourceStream );
}
}
// we ran out of options, throw an exception
throw new IllegalArgumentException("Unsupported conversion: " + targetEncoding + " from " + sourceStream.getFormat());
}
AudioSystem.java 文件源码
java
阅读 26
收藏 0
点赞 0
评论 0
项目:openjdk-jdk10
作者:
评论列表
文章目录