- java.lang.Object
-
- javax.sound.sampled.AudioSystem
-
public class AudioSystem extends Object
AudioSystem
类充当采样音频系统资源的入口点。 此类允许您查询和访问系统上安装的混音器。AudioSystem
包括许多用于在不同格式之间转换音频数据以及用于在音频文件和流之间进行转换的方法。 它还提供了一种获取方法Line
直接从AudioSystem
而不搅拌机明确处理。属性可用于指定特定线型的默认混合器。 系统属性和属性文件都被考虑在内。 “sound.properties”属性文件是从特定于实现的位置读取的(通常是Java安装目录中的
Audio System Property Keys Property Key Interface Affected Method(s)conf
目录)。 可选的“javax.sound.config.file”系统属性可用于指定将作为初始配置读取的属性文件。 如果属性同时存在于系统属性和属性文件中,则系统属性优先。 如果未指定,则在可用设备中选择合适的默认值。 属性文件的语法在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
方法返回的getName
Mixer.Info
。 可以省略类名或混合器名称。 如果仅指定了类名,则尾随哈希标记是可选的。如果指定了提供程序类,并且可以从已安装的提供程序中成功检索它,
Mixer.Info
从提供程序中检索Mixer.Info
对象的列表。 否则,或当这些混音器不提供后续匹配时,将从getMixerInfo()
检索列表以包含所有可用的Mixer.Info
对象。如果指定了混合器名称,则会搜索
Mixer.Info
对象的结果列表:将返回第一个具有匹配名称且其Mixer
提供相应行界面的对象。 如果未找到匹配的Mixer.Info
对象,或未指定混音器名称,将返回结果列表中提供相应线路接口的第一个混音器。例如,财产
javax.sound.sampled.Clip
一个值"com.sun.media.sound.MixerProvider#SunClip"
将产生以下后果时getLine
被称为请求Clip
实例:如果类com.sun.media.sound.MixerProvider
在安装的混频器提供者列表存在,则第Clip
从第一混频器名称"SunClip"
将被退回。 如果找不到,则无论名称如何,都将返回指定提供者的第一个混音器中的第一个Clip
。 如果没有,第Clip
从第一Mixer
名称为"SunClip"
的所有混合器(如返回列表getMixerInfo
)将被退回,或者,如果没有找到,第Clip
第一Mixer
,可以在找到返回所有混音器的列表。 如果失败,则抛出IllegalArgumentException
。- 从以下版本开始:
- 1.3
- 另请参见:
-
AudioFormat
,AudioInputStream
,Mixer
,Line
,Line.Info
-
-
字段汇总
字段 变量和类型 字段 描述 static int
NOT_SPECIFIED
一个整数,表示未知的数值。
-
方法摘要
所有方法 静态方法 具体的方法 变量和类型 方法 描述 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
。 其他方法也可以接受或返回此值,如文档所述。- 另请参见:
- 常数字段值
-
-
方法详细信息
-
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
- 如果info对象不代表系统上安装的混音器 - 另请参见:
-
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
-所述URL
的量,AudioInputStream
应当被构造 - 结果
-
一个
AudioInputStream
基于音频文件数据对象指向的URL
- 异常
-
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
将表示指定文件类型的音频文件的字节流写入提供的输出流。 某些文件类型要求将长度写入文件头; 除非提前知道长度,否则不能从头到尾写入此类文件。 如果音频文件类型的长度为IOException
则尝试写入此类型的文件将失败并显示AudioSystem.NOT_SPECIFIED
。- 参数
-
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()
-
-