- java.lang.Object
-
- javax.sound.sampled.AudioSystem
-
public class AudioSystem extends Object
AudioSystem
类作为采样音频系统资源的入口点。 此类允许您查询和访问系统上安装的混音器。AudioSystem
包括用于在不同格式之间转换音频数据以及用于在音频文件和流之间进行转换的多种方法。 它还提供了一种从AudioSystem直接获取AudioSystem
而不用混合器明确处理的方法。属性可用于指定特定行类型的默认调音台。 考虑系统属性和属性文件。 “sound.properties”属性文件从实现特定的位置读取(通常它是Java安装目录中的
Audio System Property Keys Property Key Interface Affected Method(s)conf
目录)。 如果属性既作为系统属性又在属性文件中存在,则系统属性优先。 如果没有指定,则在可用设备中选择合适的默认值。 属性文件的语法在Properties.load
中指定。 下表列出了可用的属性键和哪些方法考虑:javax.sound.sampled.Clip
Clip
getLine(javax.sound.sampled.Line.Info)
,getClip()
javax.sound.sampled.Port
Port
getLine(javax.sound.sampled.Line.Info)
javax.sound.sampled.SourceDataLine
SourceDataLine
getLine(javax.sound.sampled.Line.Info)
,getSourceDataLine(javax.sound.sampled.AudioFormat)
javax.sound.sampled.TargetDataLine
TargetDataLine
getLine(javax.sound.sampled.Line.Info)
,getTargetDataLine(javax.sound.sampled.AudioFormat)
mixer provider
类的完全限定名称。 混合器名称匹配String
的getName
方法返回的Mixer.Info
。 可以省略类名称或混音器名称。 如果仅指定了类名称,则尾部哈希标记是可选的。如果指定了提供程序类,并且可以从已安装的提供程序成功检索,则可以从提供程序检索
Mixer.Info
对象的列表。 否则,或者当这些混音器不提供后续匹配时,该列表将从getMixerInfo()
检索到包含所有可用的Mixer.Info
对象。如果指定了混音器名称,则会搜索
Mixer.Info
对象的结果列表:第一个具有匹配名称,其Mixer
提供相应行界面的对象将被返回。 如果没有匹配的Mixer.Info
找到对象,或者没有指定混合器名,从结果列表中,它提供了各自的线路接口的第一混频器,将被返回。 例如,当getLine
被调用请求Clip
实例时,具有值"com.sun.media.sound.MixerProvider#SunClip"
的属性javax.sound.sampled.Clip
将具有以下结果:如果安装的混合器提供程序列表中存在类别com.sun.media.sound.MixerProvider
,则将返回名称为"SunClip"
的第一个混合器的第一个Clip
。 如果找不到,将从返回的指定提供程序的第一个混音器的第一个Clip
,无论名称如何。 如果没有,第Clip
从第一Mixer
名称为"SunClip"
的所有混合器(如返回列表getMixerInfo
)将被退回,或者,如果没有找到,第Clip
第一Mixer
,可以在找到返回所有混音器的列表。 如果失败,也抛出一个IllegalArgumentException
。- 从以下版本开始:
- 1.3
- 另请参见:
-
AudioFormat
,AudioInputStream
,Mixer
,Line
,Line.Info
-
-
Field Summary
Fields Modifier and Type Field 描述 static int
NOT_SPECIFIED
一个代表未知数值的整数。
-
方法摘要
所有方法 静态方法 具体的方法 Modifier and Type 方法 描述 static AudioFileFormat
getAudioFileFormat(File file)
获取指定的File
的音频文件格式。static AudioFileFormat
getAudioFileFormat(InputStream stream)
获取提供的输入流的音频文件格式。static AudioFileFormat
getAudioFileFormat(URL url)
获取指定URL的音频文件格式。static AudioFileFormat.Type[]
getAudioFileTypes()
获取系统提供文件写入支持的文件类型。static AudioFileFormat.Type[]
getAudioFileTypes(AudioInputStream stream)
从指定的音频输入流获取系统可以写入的文件类型。static AudioInputStream
getAudioInputStream(File file)
从提供的File
获取音频输入流。static AudioInputStream
getAudioInputStream(InputStream stream)
从提供的输入流中获取音频输入流。static AudioInputStream
getAudioInputStream(URL url)
从提供的URL获取音频输入流。static AudioInputStream
getAudioInputStream(AudioFormat.Encoding targetEncoding, AudioInputStream sourceStream)
通过转换所提供的音频输入流来获得所指示的编码的音频输入流。static AudioInputStream
getAudioInputStream(AudioFormat targetFormat, AudioInputStream sourceStream)
通过转换所提供的音频输入流来获得指示格式的音频输入流。static Clip
getClip()
获取可用于播放音频文件或音频流的剪辑。static Clip
getClip(Mixer.Info mixerInfo)
从指定的混音器中获取可用于播放音频文件或音频流的剪辑。static Line
getLine(Line.Info info)
获取与指定的Line.Info
对象中的描述匹配的行。static Mixer
getMixer(Mixer.Info info)
获得所要求的音频混音器。static Mixer.Info[]
getMixerInfo()
获取一组混合信息对象,表示系统当前安装的一组音频混合器。static SourceDataLine
getSourceDataLine(AudioFormat format)
获取可用于以AudioFormat
对象指定的格式播放音频数据的源数据线。static SourceDataLine
getSourceDataLine(AudioFormat format, Mixer.Info mixerinfo)
获得可用于在由指定的格式回放音频数据的源数据线AudioFormat
对象,通过由指定的混频器提供Mixer.Info
对象。static Line.Info[]
getSourceLineInfo(Line.Info info)
获取有关所安装的混音器支持的特定类型的所有源行的信息。static TargetDataLine
getTargetDataLine(AudioFormat format)
获取可用于以AudioFormat
对象指定的格式录制音频数据的目标数据线。static TargetDataLine
getTargetDataLine(AudioFormat format, Mixer.Info mixerinfo)
获得可用于在由指定的格式记录音频数据的目标数据线AudioFormat
对象,通过由指定的混频器提供Mixer.Info
对象。static AudioFormat.Encoding[]
getTargetEncodings(AudioFormat sourceFormat)
获取系统可以使用一组已安装的格式转换器从指定格式的音频输入流中获取的编码。static AudioFormat.Encoding[]
getTargetEncodings(AudioFormat.Encoding sourceEncoding)
获取系统可以使用一组已安装的格式转换器从具有指定编码的音频输入流中获取的编码。static AudioFormat[]
getTargetFormats(AudioFormat.Encoding targetEncoding, AudioFormat sourceFormat)
获取具有特定编码的格式,并且系统可以使用一组已安装的格式转换器从指定格式的流中获取。static Line.Info[]
getTargetLineInfo(Line.Info info)
获取有关所安装的混音器支持的特定类型的所有目标行的信息。static boolean
isConversionSupported(AudioFormat.Encoding targetEncoding, AudioFormat sourceFormat)
指示是否可以从具有指定格式的音频输入流获取指定编码的音频输入流。static boolean
isConversionSupported(AudioFormat targetFormat, AudioFormat sourceFormat)
指示是否可以从另一指定格式的音频输入流获取指定格式的音频输入流。static boolean
isFileTypeSupported(AudioFileFormat.Type fileType)
指示系统是否提供了对指定文件类型的文件写入支持。static boolean
isFileTypeSupported(AudioFileFormat.Type fileType, AudioInputStream stream)
指示是否可以从指定的音频输入流中写入指定的文件类型的音频文件。static boolean
isLineSupported(Line.Info info)
指示系统是否支持与指定的Line.Info
对象匹配的任何行。static int
write(AudioInputStream stream, AudioFileFormat.Type fileType, File out)
将指定文件类型的音频文件的字节流写入提供的外部文件。static int
write(AudioInputStream stream, AudioFileFormat.Type fileType, OutputStream out)
将指定文件类型的音频文件的字节流写入提供的输出流。
-
-
-
字段详细信息
-
NOT_SPECIFIED
public static final int NOT_SPECIFIED
一个代表未知数值的整数。 该值仅适用于通常不采取负值的带符号数量。 示例包括文件大小,帧大小,缓冲区大小和采样率。 许多Java Sound构造函数接受这样的参数的值为NOT_SPECIFIED
。 其他方法也可以接受或返回此值,如文件所示。- 另请参见:
- Constant Field Values
-
-
方法详细信息
-
getMixerInfo
public static Mixer.Info[] getMixerInfo()
获取一组混合信息对象,表示系统当前安装的一组音频混合器。- 结果
- 一系列当前安装的混音器的信息对象。 如果系统上没有可用的混音器,则返回长度为0的数组。
- 另请参见:
-
getMixer(javax.sound.sampled.Mixer.Info)
-
getMixer
public static Mixer getMixer(Mixer.Info info)
获得所要求的音频混音器。- 参数
-
info
- 表示所需混音器的Mixer.Info
对象,或null
系统默认混音器 - 结果
- 请求的混音器
- 异常
-
SecurityException
- 如果请求的混音器由于安全限制而不可用 -
IllegalArgumentException
- 如果信息对象不表示系统上安装的混音器 - 另请参见:
-
getMixerInfo()
-
getSourceLineInfo
public static Line.Info[] getSourceLineInfo(Line.Info info)
获取有关所安装的混音器支持的特定类型的所有源行的信息。- 参数
-
info
- 一个Line.Info
对象,指定要求哪些信息的行的种类 - 结果
-
描述一个
Line.Info
对象的数组,描述符合所请求类型的源行。 如果不支持匹配的源行,则返回长度为0的数组。 - 另请参见:
-
Mixer.getSourceLineInfo(Line.Info)
-
getTargetLineInfo
public static Line.Info[] getTargetLineInfo(Line.Info info)
获取有关所安装的混音器支持的特定类型的所有目标行的信息。- 参数
-
info
- 一个Line.Info
对象,指定要求哪个信息的行的种类 - 结果
-
描述符合所请求类型的目标行的
Line.Info
对象的数组。 如果不支持匹配的目标行,则返回长度为0的数组。 - 另请参见:
-
Mixer.getTargetLineInfo(Line.Info)
-
isLineSupported
public static boolean isLineSupported(Line.Info info)
指示系统是否支持与指定的Line.Info
对象匹配的任何行。 如果任何已安装的调音台支持线路,则支持线路。- 参数
-
info
- 描述要查询支持的行的Line.Info
对象 - 结果
-
true
,如果至少一个匹配线被支撑,否则false
- 另请参见:
-
Mixer.isLineSupported(Line.Info)
-
getLine
public static Line getLine(Line.Info info) throws LineUnavailableException
获取与指定的Line.Info
对象中的描述匹配的行。如果请求
DataLine
,并且info
是指定至少一个完全限定音频格式的DataLine.Info
的实例,则最后一个将被用作返回的DataLine
的默认格式。如果系统属性
javax.sound.sampled.Clip
,javax.sound.sampled.Port
,javax.sound.sampled.SourceDataLine
和javax.sound.sampled.TargetDataLine
被定义或者在文件“sound.properties”定义的,它们被用来获取默认的行。 详情请参阅class description
。 如果没有设置相应的属性,或者没有安装属性中要求的混音器或不提供所请求的线路,则会根据请求的线路类型查询所有安装的混音器。 一条线将从提供所请求线路类型的第一台混音器返回。- 参数
-
info
- 描述所需类型的线的Line.Info
对象 - 结果
- 一条要求的种类
- 异常
-
LineUnavailableException
- 如果由于资源限制,匹配的行不可用 -
SecurityException
- 如果由于安全限制,匹配的行不可用 -
IllegalArgumentException
- 如果系统通过任何安装的混音器不支持至少一行匹配指定的Line.Info
对象
-
getClip
public static Clip getClip() throws LineUnavailableException
获取可用于播放音频文件或音频流的剪辑。 返回的剪辑将由默认的系统混音器提供,或者如果不可能,则由支持Clip
对象的系统中安装的任何其他混音器提供。必须使用
open(AudioFormat)
或open(AudioInputStream)
方法打开返回的剪辑。这是一种在内部使用
getMixer
和getLine
的高级方法。如果系统属性
javax.sound.sampled.Clip
已被定义,或者在文件“sound.properties”中定义,则用于检索默认剪辑。 详情请参阅class description
。- 结果
- 所需的剪辑对象
- 异常
-
LineUnavailableException
- 如果由于资源限制,剪辑对象不可用 -
SecurityException
- 如果由于安全限制,剪辑对象不可用 -
IllegalArgumentException
- 如果系统通过任何已安装的混音器不支持至少一个剪辑实例 - 从以下版本开始:
- 1.5
- 另请参见:
-
getClip(Mixer.Info)
-
getClip
public static Clip getClip(Mixer.Info mixerInfo) throws LineUnavailableException
从指定的混音器中获取可用于播放音频文件或音频流的剪辑。必须使用
open(AudioFormat)
或open(AudioInputStream)
方法打开返回的剪辑。这是一种在内部使用
getMixer
和getLine
的高级方法。- 参数
-
mixerInfo
- 表示所需混频器的Mixer.Info
对象,或系统默认混音器的null
- 结果
- 来自指定混音器的剪辑对象
- 异常
-
LineUnavailableException
- 如果由于资源限制,剪辑不可用于此混音器 -
SecurityException
- 如果由于安全限制,剪辑不可用于此混音器 -
IllegalArgumentException
- 如果系统通过指定的混音器不支持至少一个剪辑 - 从以下版本开始:
- 1.5
- 另请参见:
-
getClip()
-
getSourceDataLine
public static SourceDataLine getSourceDataLine(AudioFormat format) throws LineUnavailableException
获取可用于以AudioFormat
对象指定的格式播放音频数据的源数据线。 返回的行将由默认的系统调音台提供,或者如果不可能,则由系统中安装的任何其他调音台(支持匹配的SourceDataLine
对象)提供。应使用
open(AudioFormat)
或open(AudioFormat, int)
方法打开返回行。这是一种在内部使用
getMixer
和getLine
的高级别方法。返回的
SourceDataLine
的默认音频格式将使用format
初始化。如果系统属性
javax.sound.sampled.SourceDataLine
被定义,或者它在文件“sound.properties”中定义,则用于检索默认的源数据行。 详情请参阅class description
。- 参数
-
format
- 指定所支持的返回行的音频格式的AudioFormat
对象,或任何音频格式的null
- 结果
-
所需的
SourceDataLine
对象 - 异常
-
LineUnavailableException
- 如果由于资源限制,匹配的源数据行不可用 -
SecurityException
- 如果由于安全限制,匹配的源数据行不可用 -
IllegalArgumentException
- 如果系统不支持通过任何安装的混音器支持指定音频格式的至少一个源数据线 - 从以下版本开始:
- 1.5
- 另请参见:
-
getSourceDataLine(AudioFormat, Mixer.Info)
-
getSourceDataLine
public static SourceDataLine getSourceDataLine(AudioFormat format, Mixer.Info mixerinfo) throws LineUnavailableException
获得可用于在由指定的格式回放音频数据的源数据线AudioFormat
对象,通过由指定的混频器提供Mixer.Info
对象。返回行应使用
open(AudioFormat)
或open(AudioFormat, int)
方法打开。这是一种在内部使用
getMixer
和getLine
的高级方法。返回的
SourceDataLine
的默认音频格式将使用format
进行初始化。- 参数
-
format
- 指定所支持的返回行的音频格式的AudioFormat
对象,或任何音频格式的null
-
mixerinfo
- 表示所需混频器的Mixer.Info
对象,或null
用于系统默认混音器 - 结果
-
所需的
SourceDataLine
对象 - 异常
-
LineUnavailableException
- 如果由于资源限制,匹配的源数据线不能从指定的混合器获得 -
SecurityException
- 如果由于安全限制,匹配的源数据行不能从指定的调音台获得 -
IllegalArgumentException
- 如果指定的混合器不支持至少一个支持指定音频格式的源数据线 - 从以下版本开始:
- 1.5
- 另请参见:
-
getSourceDataLine(AudioFormat)
-
getTargetDataLine
public static TargetDataLine getTargetDataLine(AudioFormat format) throws LineUnavailableException
获取可用于以AudioFormat
对象指定的格式录制音频数据的目标数据线。 返回的行将由默认的系统调音台提供,或者如果不可能,则通过系统中安装的任何其他调音台来支持匹配的TargetDataLine
对象。应使用
open(AudioFormat)
或open(AudioFormat, int)
方法打开返回的行。这是一种在内部使用
getMixer
和getLine
的高级方法。返回的
TargetDataLine
的默认音频格式将使用format
进行初始化。如果系统属性
javax.sound.sampled.TargetDataLine
被定义,或者在文件“sound.properties”中定义,则用于检索默认目标数据行。 详情请参阅class description
。- 参数
-
format
- 一个AudioFormat
对象,指定所支持的返回行的音频格式,或任何音频格式的null
- 结果
-
所需的
TargetDataLine
对象 - 异常
-
LineUnavailableException
- 如果由于资源限制,匹配的目标数据行不可用 -
SecurityException
- 如果由于安全限制,匹配的目标数据行不可用 -
IllegalArgumentException
- 如果系统不支持至少一个目标数据线,通过任何安装的混音器支持指定的音频格式 - 从以下版本开始:
- 1.5
- 另请参见:
-
getTargetDataLine(AudioFormat, Mixer.Info)
,AudioPermission
-
getTargetDataLine
public static TargetDataLine getTargetDataLine(AudioFormat format, Mixer.Info mixerinfo) throws LineUnavailableException
获得可用于在由指定的格式记录音频数据的目标数据线AudioFormat
对象,通过由指定的混频器提供Mixer.Info
对象。应使用
open(AudioFormat)
或open(AudioFormat, int)
方法打开返回的行。这是一种内部使用
getMixer
和getLine
的高级方法。返回的
TargetDataLine
的默认音频格式将被初始化为format
。- 参数
-
format
- 指定所支持的返回行音频格式的AudioFormat
对象,或任何音频格式的null
-
mixerinfo
- 表示所需混频器的Mixer.Info
对象,或系统默认混音器的null
- 结果
-
所需的
TargetDataLine
对象 - 异常
-
LineUnavailableException
- 如果匹配的目标数据线由于资源限制而不能从指定的混合器中使用 -
SecurityException
- 如果匹配的目标数据线由于安全限制而从指定的混合器中不可用 -
IllegalArgumentException
- 如果指定的混音器不支持至少一个支持指定音频格式的目标数据线 - 从以下版本开始:
- 1.5
- 另请参见:
-
getTargetDataLine(AudioFormat)
,AudioPermission
-
getTargetEncodings
public static AudioFormat.Encoding[] getTargetEncodings(AudioFormat.Encoding sourceEncoding)
获取系统可以使用一组已安装的格式转换器从具有指定编码的音频输入流中获取的编码。- 参数
-
sourceEncoding
- 查询转换支持的编码 - 结果
-
编码数组。
如果不支持
sourceEncoding
,则返回长度为0的数组。 否则,该数组的长度至少为1,表示sourceEncoding
(无转换)。 - 异常
-
NullPointerException
- 如果sourceEncoding
是null
-
getTargetEncodings
public static AudioFormat.Encoding[] getTargetEncodings(AudioFormat sourceFormat)
获取系统可以使用一组已安装的格式转换器从指定格式的音频输入流中获取的编码。- 参数
-
sourceFormat
- 查询转换的音频格式 - 结果
-
编码数组。
如果不支持
sourceFormat
,则返回长度为0的数组。 否则,数组的长度至少为1,表示编码为sourceFormat
(无转换)。 - 异常
-
NullPointerException
- 如果sourceFormat
是null
-
isConversionSupported
public static boolean isConversionSupported(AudioFormat.Encoding targetEncoding, AudioFormat sourceFormat)
指示是否可以从具有指定格式的音频输入流获取指定编码的音频输入流。- 参数
-
targetEncoding
- 转换后的所需编码 -
sourceFormat
- 转换前的音频格式 - 结果
-
true
如果转换支持,否则为false
- 异常
-
NullPointerException
- 如果targetEncoding
或sourceFormat
为null
-
getAudioInputStream
public static AudioInputStream getAudioInputStream(AudioFormat.Encoding targetEncoding, AudioInputStream sourceStream)
通过转换所提供的音频输入流来获得所指示的编码的音频输入流。- 参数
-
targetEncoding
- 转换后的所需编码 -
sourceStream
- 要转换的流 - 结果
- 指示编码的音频输入流
- 异常
-
IllegalArgumentException
- 如果不支持转换 -
NullPointerException
- 如果targetEncoding
或sourceStream
是null
- 另请参见:
-
getTargetEncodings(AudioFormat.Encoding)
,getTargetEncodings(AudioFormat)
,isConversionSupported(AudioFormat.Encoding, AudioFormat)
,getAudioInputStream(AudioFormat, AudioInputStream)
-
getTargetFormats
public static AudioFormat[] getTargetFormats(AudioFormat.Encoding targetEncoding, AudioFormat sourceFormat)
获取具有特定编码的格式,并且系统可以使用一组已安装的格式转换器从指定格式的流中获取。- 参数
-
targetEncoding
- 转换后的所需编码 -
sourceFormat
- 转换前的音频格式 - 结果
- 数组格式。 如果不支持指定编码的格式,则返回长度为0的数组。
- 异常
-
NullPointerException
- 如果targetEncoding
或sourceFormat
是null
-
isConversionSupported
public static boolean isConversionSupported(AudioFormat targetFormat, AudioFormat sourceFormat)
指示是否可以从另一指定格式的音频输入流获取指定格式的音频输入流。- 参数
-
targetFormat
- 转换后所需的音频格式 -
sourceFormat
- 转换前的音频格式 - 结果
-
true
如果转换支持,否则false
- 异常
-
NullPointerException
- 如果targetFormat
或sourceFormat
是null
-
getAudioInputStream
public static AudioInputStream getAudioInputStream(AudioFormat targetFormat, AudioInputStream sourceStream)
通过转换所提供的音频输入流来获得指示格式的音频输入流。- 参数
-
targetFormat
- 转换后所需的音频格式 -
sourceStream
- 要转换的流 - 结果
- 指示格式的音频输入流
- 异常
-
IllegalArgumentException
- 如果不支持转换 -
NullPointerException
- 如果targetFormat
或sourceStream
是null
- 另请参见:
-
getTargetEncodings(AudioFormat)
,getTargetFormats(AudioFormat.Encoding, AudioFormat)
,isConversionSupported(AudioFormat, AudioFormat)
,getAudioInputStream(AudioFormat.Encoding, AudioInputStream)
-
getAudioFileFormat
public static AudioFileFormat getAudioFileFormat(InputStream stream) throws UnsupportedAudioFileException, IOException
获取提供的输入流的音频文件格式。 流必须指向有效的音频文件数据。 该方法的实现可能需要多个解析器来检查流以确定它们是否支持它。 这些解析器必须能够标记流,读取足够的数据来确定它们是否支持流,并将流的读取指针重置为其原始位置。 如果输入流不支持这些操作,则此方法可能会失败,并显示IOException
。- 参数
-
stream
- 应提取文件格式信息的输入流 - 结果
-
描述流的音频文件格式的
AudioFileFormat
对象 - 异常
-
UnsupportedAudioFileException
- 如果流不指向系统识别的有效音频文件数据 -
IOException
- 如果输入/输出异常发生 -
NullPointerException
- 如果stream
是null
- 另请参见:
-
InputStream.markSupported()
,InputStream.mark(int)
-
getAudioFileFormat
public static AudioFileFormat getAudioFileFormat(URL url) throws UnsupportedAudioFileException, IOException
获取指定URL的音频文件格式。 URL必须指向有效的音频文件数据。- 参数
-
url
- 应提取文件格式信息的URL - 结果
-
描述音频文件格式的
AudioFileFormat
对象 - 异常
-
UnsupportedAudioFileException
- 如果URL不指向系统识别的有效音频文件数据 -
IOException
- 如果输入/输出异常发生 -
NullPointerException
- 如果url
是null
-
getAudioFileFormat
public static AudioFileFormat getAudioFileFormat(File file) throws UnsupportedAudioFileException, IOException
获取指定的File
的音频文件格式。File
必须指向有效的音频文件数据。- 参数
-
file
- 应从中提取文件格式信息的File
- 结果
-
描述音频文件格式的
AudioFileFormat
对象 - 异常
-
UnsupportedAudioFileException
- 如果File
未指向系统识别的有效音频文件数据 -
IOException
- 如果发生I / O异常 -
NullPointerException
- 如果file
是null
-
getAudioInputStream
public static AudioInputStream getAudioInputStream(InputStream stream) throws UnsupportedAudioFileException, IOException
从提供的输入流中获取音频输入流。 流必须指向有效的音频文件数据。 该方法的实现可能需要多个解析器来检查流以确定它们是否支持它。 这些解析器必须能够标记流,读取足够的数据来确定它们是否支持流,并将流的读取指针重置为其原始位置。 如果输入流不支持这些操作,则此方法可能会失败,并显示IOException
。- 参数
-
stream
-从该输入流AudioInputStream
应当被构造 - 结果
-
基于输入流中包含的音频文件数据的一个
AudioInputStream
对象 - 异常
-
UnsupportedAudioFileException
- 如果流不指向系统识别的有效音频文件数据 -
IOException
- 如果发生I / O异常 -
NullPointerException
- 如果stream
是null
- 另请参见:
-
InputStream.markSupported()
,InputStream.mark(int)
-
getAudioInputStream
public static AudioInputStream getAudioInputStream(URL url) throws UnsupportedAudioFileException, IOException
从提供的URL获取音频输入流。 URL必须指向有效的音频文件数据。- 参数
-
url
-对于其中的URLAudioInputStream
应当建立 - 结果
-
一个基于URL指向的音频文件数据的
AudioInputStream
对象 - 异常
-
UnsupportedAudioFileException
- 如果URL不指向系统识别的有效音频文件数据 -
IOException
- 如果发生I / O异常 -
NullPointerException
- 如果url
是null
-
getAudioInputStream
public static AudioInputStream getAudioInputStream(File file) throws UnsupportedAudioFileException, IOException
从提供的File
获取音频输入流。File
必须指向有效的音频文件数据。- 参数
-
file
-所述File
的量,AudioInputStream
应当被构造 - 结果
-
一个
AudioInputStream
基于音频文件数据对象指向的File
- 异常
-
UnsupportedAudioFileException
- 如果File
未指向系统识别的有效音频文件数据 -
IOException
- 如果发生I / O异常 -
NullPointerException
- 如果file
是null
-
getAudioFileTypes
public static AudioFileFormat.Type[] getAudioFileTypes()
获取系统提供文件写入支持的文件类型。- 结果
- 数组的唯一文件类型。 如果不支持文件类型,则返回长度为0的数组。
-
isFileTypeSupported
public static boolean isFileTypeSupported(AudioFileFormat.Type fileType)
指示系统是否提供了对指定文件类型的文件写入支持。- 参数
-
fileType
- 查询写入功能的文件类型 - 结果
-
true
如果文件类型是支持,否则为false
- 异常
-
NullPointerException
- 如果fileType
是null
-
getAudioFileTypes
public static AudioFileFormat.Type[] getAudioFileTypes(AudioInputStream stream)
从指定的音频输入流获取系统可以写入的文件类型。- 参数
-
stream
- 查询音频文件类型支持的音频输入流 - 结果
- 文件类型数组。 如果不支持文件类型,则返回长度为0的数组。
- 异常
-
NullPointerException
- 如果stream
是null
-
isFileTypeSupported
public static boolean isFileTypeSupported(AudioFileFormat.Type fileType, AudioInputStream stream)
指示是否可以从指定的音频输入流中写入指定的文件类型的音频文件。- 参数
-
fileType
- 查询写入功能的文件类型 -
stream
- 查询文件支持的流 - 结果
-
true
如果该音频输入流支持文件类型,否则为false
- 异常
-
NullPointerException
- 如果fileType
或stream
是null
-
write
public static int write(AudioInputStream stream, AudioFileFormat.Type fileType, OutputStream out) throws IOException
将指定文件类型的音频文件的字节流写入提供的输出流。 某些文件类型要求将长度写入文件头; 这样的文件不能从头到尾写入,除非事先知道长度。 如果音频文件类型的长度为AudioSystem.NOT_SPECIFIED
,则尝试写入此类型的文件将失败,并出现IOException。- 参数
-
stream
- 包含要写入文件的音频数据的音频输入流 -
fileType
- 要写的音频文件的种类 -
out
- 应写入文件数据的流 - 结果
- 写入输出流的字节数
- 异常
-
IOException
- 如果输入/输出异常发生 -
IllegalArgumentException
- 如果系统不支持文件类型 -
NullPointerException
- 如果stream
或fileType
或out
为null
- 另请参见:
-
isFileTypeSupported(javax.sound.sampled.AudioFileFormat.Type)
,getAudioFileTypes()
-
write
public static int write(AudioInputStream stream, AudioFileFormat.Type fileType, File out) throws IOException
将指定文件类型的音频文件的字节流写入提供的外部文件。- 参数
-
stream
- 包含要写入文件的音频数据的音频输入流 -
fileType
- 要写入的音频文件的种类 -
out
- 应写入文件数据的外部文件 - 结果
- 写入文件的字节数
- 异常
-
IOException
- 如果发生I / O异常 -
IllegalArgumentException
- 如果系统不支持文件类型 -
NullPointerException
- 如果stream
或fileType
或out
为null
- 另请参见:
-
isFileTypeSupported(javax.sound.sampled.AudioFileFormat.Type)
,getAudioFileTypes()
-
-