public class AudioSystem extends Object
AudioSystem
类作为采样的音频系统资源的入口点。这个类可以让您查询和访问安装在系统上的混频器。
AudioSystem
包括许多方法不同格式间的转换音频数据和音频文件和流之间的翻译。它还获得
Line
直接从
AudioSystem
没有明确地处理混合提供了一种方法。
属性可以用于指定特定的行类型的默认混频器。被认为是两个系统的属性和一个属性文件。的sound.properties
属性文件是从实施的具体位置读取(通常是在java的安装目录lib
目录)。如果一个属性作为一个系统属性和属性文件存在,则系统属性优先。如果没有指定,在可用设备中选择一个合适的默认值。在属性文件中指定Properties.load
语法。下表列出了可用的属性键,并列出了它们的方法:
Property Key | 接口 | Affected Method(s) |
---|---|---|
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
匹配的
Mixer.Info
的
getName
方法返回。无论是类名称,或搅拌机名称可能被省略。如果只有指定的类名称,则尾随的哈希标记是可选的。
如果提供程序类是指定的,它可以从安装商成功检索的对象列表,Mixer.Info
从提供者检索。否则,当这些混频器不提供后续的比赛名单是从getMixerInfo()
包含所有可用的Mixer.Info
对象。
如果指定了混频器的名字,结果列表中的Mixer.Info
对象搜索:第一个匹配的名字,和其Mixer
提供各自的线路接口,将返回。如果没有匹配的Mixer.Info
找到对象,或混合的名字没有被指定,从结果列表第一混频器,它提供了相应的接口,将返回。例如,一个价值"com.sun.media.sound.MixerProvider#SunClip"
物业javax.sound.sampled.Clip
将有以下的后果时,getLine
叫做请求Clip
实例:如果类com.sun.media.sound.MixerProvider
存在于安装搅拌机供应商清单,从名字"SunClip"
第一混频器的第一Clip
将返回。如果它不能找到,从指定的供应商第一混频器的第一Clip
将返回,无论名称。如果没有,在所有搅拌机的名单"SunClip"
第一Mixer
第一Clip
(返回的getMixerInfo
)将被退回,或者,如果没有找到,在第一Mixer
that第一Clip
可以在所有搅拌机列表中找到返回。如果失败,也IllegalArgumentException
抛出一个。
AudioFormat
,
AudioInputStream
,
Mixer
,
Line
,
Line.Info
Modifier and Type | Field and Description |
---|---|
static int |
NOT_SPECIFIED
一个整数,表示一个未知的数字值。
|
Modifier and Type | Method and Description |
---|---|
static AudioFileFormat |
getAudioFileFormat(File file)
获取指定的
File 音频文件格式。
|
static AudioFileFormat |
getAudioFileFormat(InputStream stream)
获取所提供的输入流的音频文件格式。
|
static AudioFileFormat |
getAudioFileFormat(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)
从提供的网址获得音频输入流。
|
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)
将表示指定文件类型的音频文件的字节流写入提供的输出流中。
|
public static final int NOT_SPECIFIED
NOT_SPECIFIED
值等参数。其他方法也可以接受或返回此值,如有记录的。
public static Mixer.Info[] getMixerInfo()
getMixer(javax.sound.sampled.Mixer.Info)
public static Mixer getMixer(Mixer.Info info)
info
-代表期望的混合
Mixer.Info
对象,或
null
为系统默认的搅拌机
SecurityException
如果由于安全限制要求的搅拌机是无效的
IllegalArgumentException
如果信息对象并不代表一个混合器安装在系统
getMixerInfo()
public static Line.Info[] getSourceLineInfo(Line.Info info)
info
-
Line.Info
指定类线要求的信息
Line.Info
对象的描述源线匹配的数组,要求。如果没有匹配的源代码行,则返回一个长度为0的数组。
Mixer.getSourceLineInfo(Line.Info)
public static Line.Info[] getTargetLineInfo(Line.Info info)
info
-
Line.Info
指定类线要求的信息
Line.Info
对象描述的目标线匹配的数组,要求。如果没有匹配的目标线,则返回一个长度为0的数组。
Mixer.getTargetLineInfo(Line.Info)
public static boolean isLineSupported(Line.Info info)
Line.Info
对象匹配。一个线是支持,如果任何安装的调音台支持它。
info
-
Line.Info
对象描述的线路支持的查询
true
如果至少有一个匹配的在线支持,否则
false
Mixer.isLineSupported(Line.Info)
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
定义或他们在文件“声音定义。属性”,它们是用来检索默认线。有关详细信息,请参阅class description
。如果没有设置相应的属性,或在属性中要求的混频器没有安装或不提供所需的行,所有已安装的混频器都会被请求的行类型查询。将从第一个混频器返回的线路提供所需的线路类型。
info
-
Line.Info
对象描述线所需的种
LineUnavailableException
-如果一个匹配行不可因资源限制
SecurityException
-如果一个匹配行不可由于安全限制
IllegalArgumentException
-如果系统没有至少一个线通过任何安装搅拌机匹配指定的
Line.Info
对象支持
public static Clip getClip() throws LineUnavailableException
Clip
对象系统。
返回的卡必须打开的open(AudioFormat)
或open(AudioInputStream)
方法。
这是一个高层次的方法,采用getMixer
和getLine
内部。
如果系统性能javax.sound.sampled.Clip
定义或是文件中的“声音定义。属性”,它是用来检索默认剪辑。有关详细信息,请参阅class description
。
LineUnavailableException
-如果一个剪辑对象不可用,由于资源的限制
SecurityException
-如果一个剪辑对象不可用,由于安全限制
IllegalArgumentException
-如果系统没有通过任何安装混合器支持至少一个实例
getClip(Mixer.Info)
public static Clip getClip(Mixer.Info mixerInfo) throws LineUnavailableException
返回的卡必须打开的open(AudioFormat)
或open(AudioInputStream)
方法。
这是一个高层次的方法,采用getMixer
和getLine
内部。
mixerInfo
-代表期望的混合
Mixer.Info
对象,或
null
为系统默认的搅拌机
LineUnavailableException
-如果剪辑不可从本机由于资源限制
SecurityException
-如果剪辑不可从本机由于安全限制
IllegalArgumentException
-如果系统没有通过指定的混合支持至少一个夹子
getClip()
public static SourceDataLine getSourceDataLine(AudioFormat format) throws LineUnavailableException
AudioFormat
对象指定的格式播放音频数据。返回的路线将由系统默认提供的搅拌机,或者,如果不可能,任何其他混合器安装在支持匹配
SourceDataLine
对象系统。
返回的行应该是打开的open(AudioFormat)
或open(AudioFormat, int)
方法。
这是一个高层次的方法,采用getMixer
和getLine
内部。
返回的SourceDataLine
的默认音频格式将被初始化format
。
如果系统性能javax.sound.sampled.SourceDataLine
定义或是文件中的“声音定义。属性”,它是用来检索默认源数据线。有关详细信息,请参阅class description
。
format
-
AudioFormat
对象指定支持的音频格式的返回线,或
null
任何音频格式
SourceDataLine
对象
LineUnavailableException
如果匹配源数据线不可用,由于资源的限制
SecurityException
如果匹配源数据线是不是由于安全限制
IllegalArgumentException
-如果系统没有通过任何安装混合器支持至少一个源数据线支持指定的音频格式
getSourceDataLine(AudioFormat, Mixer.Info)
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
-如果指定机不支持至少一个源数据线支持指定的音频格式
getSourceDataLine(AudioFormat)
public static TargetDataLine getTargetDataLine(AudioFormat format) throws LineUnavailableException
AudioFormat
对象指定的格式记录的音频数据。返回的路线将由系统默认提供的搅拌机,或者,如果不可能,任何其他混合器安装在支持匹配
TargetDataLine
对象系统。
返回的行应该是打开的open(AudioFormat)
或open(AudioFormat, int)
方法。
这是一个高层次的方法,采用getMixer
和getLine
内部。
返回的TargetDataLine
的默认音频格式将被初始化format
。
如果系统性能javax.sound.sampled.TargetDataLine
定义或是文件中的“声音定义。属性”,它是用来检索默认目标数据线。有关详细信息,请参阅class description
。
format
-
AudioFormat
对象指定支持的音频格式的返回线,或
null
任何音频格式
TargetDataLine
对象
LineUnavailableException
-如果目标匹配的数据线不可用,由于资源的限制
SecurityException
-如果目标匹配的数据线是不是由于安全限制
IllegalArgumentException
-如果系统没有通过任何安装混合器支持至少一个目标数据线支持指定的音频格式
getTargetDataLine(AudioFormat, Mixer.Info)
,
AudioPermission
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
-如果指定机不支持至少一个目标数据线支持指定的音频格式
getTargetDataLine(AudioFormat)
,
AudioPermission
public static AudioFormat.Encoding[] getTargetEncodings(AudioFormat.Encoding sourceEncoding)
sourceEncoding
-编码转换支持查询
sourceEncoding
is不支持,则返回的数组长度为0。否则,该阵列将有一个长度至少为1,代表
sourceEncoding
(无转换)。
public static AudioFormat.Encoding[] getTargetEncodings(AudioFormat sourceFormat)
sourceFormat
-音频格式转换查询
sourceFormat
is不支持,则返回的数组长度为0。否则,该阵列将有一个长度至少为1,占
sourceFormat
编码(无转换)。
public static boolean isConversionSupported(AudioFormat.Encoding targetEncoding, AudioFormat sourceFormat)
targetEncoding
-
sourceFormat
-音频格式转换前
true
如果转换的支持,否则
false
public static AudioInputStream getAudioInputStream(AudioFormat.Encoding targetEncoding, AudioInputStream sourceStream)
targetEncoding
-所需的编码转换后
sourceStream
-流被转换
IllegalArgumentException
-如果不支持转换
getTargetEncodings(AudioFormat.Encoding)
,
getTargetEncodings(AudioFormat)
,
isConversionSupported(AudioFormat.Encoding, AudioFormat)
,
getAudioInputStream(AudioFormat, AudioInputStream)
public static AudioFormat[] getTargetFormats(AudioFormat.Encoding targetEncoding, AudioFormat sourceFormat)
targetEncoding
-
sourceFormat
-音频格式转换前
public static boolean isConversionSupported(AudioFormat targetFormat, AudioFormat sourceFormat)
targetFormat
-所需的音频格式转换后
sourceFormat
-音频格式转换前
true
如果转换的支持,否则
false
public static AudioInputStream getAudioInputStream(AudioFormat targetFormat, AudioInputStream sourceStream)
targetFormat
-所需的音频格式转换后
sourceStream
-流被转换
IllegalArgumentException
-如果不支持转换#看到# gettargetencodings(audioformat)
getTargetFormats(AudioFormat.Encoding, AudioFormat)
,
isConversionSupported(AudioFormat, AudioFormat)
,
getAudioInputStream(AudioFormat.Encoding, AudioInputStream)
public static AudioFileFormat getAudioFileFormat(InputStream stream) throws UnsupportedAudioFileException, IOException
IOException
。
stream
-输入流从文件格式信息应提取
AudioFileFormat
对象描述流的音频文件格式
UnsupportedAudioFileException
如果流不指向有效的音频文件数据被系统识别
IOException
如果发生输入/输出异常
InputStream.markSupported()
,
InputStream.mark(int)
public static AudioFileFormat getAudioFileFormat(URL url) throws UnsupportedAudioFileException, IOException
url
的URL的文件格式的信息应提取
AudioFileFormat
对象描述的音频文件格式
UnsupportedAudioFileException
-如果URL没有指向有效的音频文件数据被系统识别
IOException
如果发生输入/输出异常
public static AudioFileFormat getAudioFileFormat(File file) throws UnsupportedAudioFileException, IOException
File
音频文件格式。的
File
必须指向有效的音频文件数据。
file
-
File
从文件格式信息应提取
AudioFileFormat
对象描述的音频文件格式
UnsupportedAudioFileException
-如果
File
没有指向有效的音频文件数据被系统识别
IOException
如果发生I/O异常
public static AudioInputStream getAudioInputStream(InputStream stream) throws UnsupportedAudioFileException, IOException
IOException
。
stream
-输入流,
AudioInputStream
应构建
AudioInputStream
对象。
UnsupportedAudioFileException
如果流不指向有效的音频文件数据被系统识别
IOException
如果发生I/O异常
InputStream.markSupported()
,
InputStream.mark(int)
public static AudioInputStream getAudioInputStream(URL url) throws UnsupportedAudioFileException, IOException
url
的URL,
AudioInputStream
应构建
AudioInputStream
对象
UnsupportedAudioFileException
-如果URL没有指向有效的音频文件数据被系统识别
IOException
如果发生I/O异常
public static AudioInputStream getAudioInputStream(File file) throws UnsupportedAudioFileException, IOException
File
音频输入流。的
File
必须指向有效的音频文件数据。
file
-
File
,
AudioInputStream
应构建
File
AudioInputStream
UnsupportedAudioFileException
-如果
File
没有指向有效的音频文件数据被系统识别
IOException
如果发生I/O异常
public static AudioFileFormat.Type[] getAudioFileTypes()
public static boolean isFileTypeSupported(AudioFileFormat.Type fileType)
fileType
-该文件类型的写作能力受到质疑
true
如果支持文件类型,否则
false
public static AudioFileFormat.Type[] getAudioFileTypes(AudioInputStream stream)
stream
-音频输入流的音频文件类型支持查询
public static boolean isFileTypeSupported(AudioFileFormat.Type fileType, AudioInputStream stream)
fileType
-该文件类型的写作能力受到质疑
stream
-流,文件写入支持查询
true
如果文件类型是这个音频输入流的支持,否则
false
public static int write(AudioInputStream stream, AudioFileFormat.Type fileType, OutputStream out) throws IOException
AudioSystem.NOT_SPECIFIED
。
stream
要写入的文件包含音频数据的音频输入流
fileType
-音频文件写的那种
out
流-该文件数据应写
IOException
如果发生输入/输出异常
IllegalArgumentException
如果文件类型不支持的系统
isFileTypeSupported(javax.sound.sampled.AudioFileFormat.Type)
,
getAudioFileTypes()
public static int write(AudioInputStream stream, AudioFileFormat.Type fileType, File out) throws IOException
stream
要写入的文件包含音频数据的音频输入流
fileType
-音频文件写的那种
out
-外部文件的文件资料应写
IOException
如果发生I/O异常
IllegalArgumentException
如果文件类型不支持的系统
isFileTypeSupported(javax.sound.sampled.AudioFileFormat.Type)
,
getAudioFileTypes()
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.