|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.sound.sampled
类 AudioSystem
java.lang.Object javax.sound.sampled.AudioSystem
-
public class AudioSystem
- extends Object
AudioSystem
类充当取样音频系统资源的入口点。此类允许查询和访问安装在系统上的混频器。AudioSystem
包括许多在不同格式间转换音频数据的方法,以及在音频文件和流之间进行转换的方法。它还提供不用显式处理混频器即可直接从 AudioSystem
获得
的方法。Line
属性可用于指定特定行类型的默认混频器。系统属性和属性文件都要考虑。在 Sun 引用实现中,属性文件是 JRE 目录中的 "lib/sound.properties"。如果存在作为系统属性的属性并且存在于属性文件中,则优先使用系统属性。如果未指定任何属性,则在可用的设备中选择适当的默认值。属性文件的语法在 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
类的完全限定名。混频器名称是与由 Mixer.Info
的 getName
方法返回的 String
匹配。可以省略类名称或混频器名称。如果只指定类名称,则尾部哈希标记是可选的。
如果指定了提供程序类,并且可以从已安装的提供程序成功地检索到它,则可从该提供程序检索 Mixer.Info
对象的列表。否则,当这些混频器不提供后续匹配时,从包含所有可用 Mixer.Info
对象的 getMixerInfo()
中检索列表。
如果指定了混频器名称,则搜索所产生的 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
,不管名称如何。如果不存在,则返回所有混频器(由 getMixerInfo
返回)列表中具有名称 "SunClip"
的第一个 Mixer
中的第一个 Clip
;或者,如果这个也找不到,则返回可以从所有混频器列表中找到的第一个 Mixer
的第一个 Clip
。如果还是失败,则抛出 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(AudioFormat.Encoding targetEncoding, AudioInputStream sourceStream) 通过转换提供的音频输入流,获得所指示编码的音频输入流。 |
static AudioInputStream |
getAudioInputStream(AudioFormat targetFormat, AudioInputStream sourceStream) 通过转换提供的音频输入流,获得所指示格式的音频输入流。 |
static AudioInputStream |
getAudioInputStream(File file) 从提供的 File 获得音频输入流。 |
static AudioInputStream |
getAudioInputStream(InputStream stream) 从提供的输入流获得音频输入流。 |
static AudioInputStream |
getAudioInputStream(URL url) 从提供的 URL 获得音频输入流。 |
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.Encoding sourceEncoding) 使用已安装的格式转换器集合获得系统可以从具有指定编码的音频输入流中获得的编码。 |
static AudioFormat.Encoding[] |
getTargetEncodings(AudioFormat sourceFormat) 使用已安装的格式转换器集合,获得系统可以从具有指定格式的音频输入流中获得的编码。 |
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) 将表示指定文件类型的音频文件的字节流写入所提供的输出流。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
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
- 如果信息对象不表示安装在系统上的混频器 - 另请参见:
-
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" 中定义它们,则使用它们检索默认行。有关详细信息,请参阅类描述
。 如果未设置相应属性,或尚未安装属性中请求的混频器,或不提供请求的行,则在所有安装的混频器中查询请求的行类型。从提供请求的行类型的第一个混频器中返回行。 -
- 参数:
-
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" 中定义了它,则使用它检索默认剪辑。有关详细信息,请参阅类描述
。 -
- 返回:
- 所需的剪辑对象
- 抛出:
-
LineUnavailableException
- 如果由于资源限制剪辑对象不可用 -
SecurityException
- 如果由于安全限制剪辑对象不可用 -
IllegalArgumentException
- 如果不是通过所有安装的混频器至少支持一个剪辑实例 - 从以下版本开始:
- 1.5
- 另请参见:
-
getClip(Mixer.Info)