- java.lang.Object
-
- javafx.scene.media.AudioClip
-
public final class AudioClip extends Object
AudioClip
表示可以以最小延迟播放的音频段。 剪辑的加载类似于Media
对象,但具有不同的行为,例如,一个Media
无法自己播放。AudioClip
也可立即使用。 播放行为是火而忘记的:一次播放方法被称为唯一可操作的控件是stop()
。 一个AudioClip
也可以同时播放多次。 要使用Media
完成相同的任务,必须为并行播放的每个声音创建一个新的MediaPlayer
对象。Media
对象更适合长时间播放的声音。 这主要是因为AudioClip
在内存中存储了整个声音的原始,未压缩音频数据,对于长音频剪辑来说,这可能相当大。 AMediaPlayer
将只有足够的解压缩音频数据在内存中预先播放短时间,因此对于较长的剪辑而言,特别是如果它们被压缩,则可以更高的内存效率。
使用示例
AudioClip plonkSound = new AudioClip("http://somehost/path/plonk.aiff"); plonkSound.play();
- 从以下版本开始:
- JavaFX 2.0
-
-
Property Summary
Properties Type Property 描述 DoubleProperty
balance
剪辑的相对左右音量级别。IntegerProperty
cycleCount
DoubleProperty
pan
剪辑的相对“中心”。IntegerProperty
priority
剪辑相对于其他剪辑的相对优先级。DoubleProperty
rate
剪辑播放的相对速率。DoubleProperty
volume
剪辑播放的相对音量级别。
-
Field Summary
Fields Modifier and Type Field 描述 static int
INDEFINITE
当cycleCount
设置为此值时,AudioClip
将连续循环,直到停止。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 DoubleProperty
balanceProperty()
剪辑的相对左右音量级别。IntegerProperty
cycleCountProperty()
调用play()
时播放剪辑的次数。double
getBalance()
获取此剪辑的默认平衡级别。int
getCycleCount()
获取默认循环计数。double
getPan()
获取默认的平移值。int
getPriority()
获取默认播放优先级。double
getRate()
获取默认播放速度。String
getSource()
获取用于创建此源的源URLAudioClip
。double
getVolume()
获取默认音量级别。boolean
isPlaying()
指示这个AudioClip
是否正在播放。DoubleProperty
panProperty()
剪辑的相对“中心”。void
play()
使用所有默认参数播放AudioClip
。void
play(double volume)
使用除卷外的所有默认参数播放AudioClip
。void
play(double volume, double balance, double rate, double pan, int priority)
使用给定的参数播放AudioClip
。IntegerProperty
priorityProperty()
剪辑相对于其他剪辑的相对优先级。DoubleProperty
rateProperty()
剪辑播放的相对速率。void
setBalance(double balance)
设置默认平衡级别。void
setCycleCount(int count)
设置默认循环计数。void
setPan(double pan)
设置默认的平移值。void
setPriority(int priority)
设置默认播放优先级。void
setRate(double rate)
设置默认回放速率。void
setVolume(double value)
设置默认音量级别。void
stop()
立即停止这个AudioClip
所有播放。DoubleProperty
volumeProperty()
剪辑播放的相对音量级别。
-
-
-
Property Detail
-
volume
public DoubleProperty volumeProperty
剪辑播放的相对音量级别。 有效范围为0.0(静音)至1.0(全音量)。 值在内部被钳位到该范围,所以超出此范围的值将不会产生额外的影响。 音量由衰减控制,因此低于1.0的值将相应地降低声级。- 另请参见:
-
getVolume()
,setVolume(double)
-
balance
public DoubleProperty balanceProperty
剪辑的相对左右音量级别。 有效范围是-1.0到1.0,其中-1.0给左声道全音量,而右声道静音,0.0给两个声道全音量,而1.0则向右声道提供全音量并使左声道静音。 超出此范围的值在内部夹紧。- 另请参见:
-
getBalance()
,setBalance(double)
-
rate
public DoubleProperty rateProperty
剪辑播放的相对速率。 有效范围为0.125(1/8速)至8.0(8倍速); 超出此范围的值在内部夹紧。 剪辑的正常播放为1.0; 任何其他费率将相应地影响音调和持续时间。- 另请参见:
-
getRate()
,setRate(double)
-
pan
public DoubleProperty panProperty
剪辑的相对“中心”。 平移值0.0为正常播放剪辑,其中-1.0平移将剪辑完全移动到左声道,并且1.0完全移动到右声道。 与平衡不同,此设置将两个通道混合,因此通道都不会丢失数据。 在单声道剪辑上设置平移与设置平衡具有相同的效果,但CPU开销成本高得多,因此不建议使用单声道剪辑。- 另请参见:
-
getPan()
,setPan(double)
-
priority
public IntegerProperty priorityProperty
剪辑相对于其他剪辑的相对优先级。 当超过最大允许剪辑次数时,此值用于确定要删除的剪辑。 优先级越低,剪辑越有可能被停止并从其占用的混音器通道中移除。 有效范围是任意整数; 没有限制。 所有剪辑的默认优先级为零,直到更改为止。 可以播放的同时声音的数量是实现的,也可能取决于系统。- 另请参见:
-
getPriority()
,setPriority(int)
-
cycleCount
public IntegerProperty cycleCountProperty
当调用play()
时剪辑的播放次数 。 一个循环数量为1次,只有一次,一次循环次数为2次,依次为2次。 有效范围为1或以上,但将其设置为INDEFINITE
将导致剪辑继续循环,直到调用stop()
。- 另请参见:
-
getCycleCount()
,setCycleCount(int)
-
-
字段详细信息
-
INDEFINITE
public static final int INDEFINITE
当cycleCount
设置为此值时,AudioClip
将连续循环,直到停止。 该值与MediaPlayer.INDEFINITE
和Animation.INDEFINITE
同义,这些值可以互换使用。- 另请参见:
- Constant Field Values
-
-
构造方法详细信息
-
AudioClip
public AudioClip(String source)
从提供的源URL创建一个AudioClip
。- 参数
-
source
- 从中加载音频剪辑的URL字符串。 这可以是HTTP,HTTPS,FILE或JAR源。 - 异常
-
NullPointerException
- 如果参数是null
。 -
IllegalArgumentException
- 如果参数违反了 RFC 2396 。 -
MediaException
- 加载媒体时是否还有其他问题。
-
-
方法详细信息
-
getSource
public String getSource()
获取用于创建此AudioClip
的源URL。- 结果
- 源URL提供给构造函数
-
setVolume
public final void setVolume(double value)
设置默认音量级别。 新设置只会在后续播放中生效。- 参数
-
value
- 此剪辑的新的默认音量级别 - 另请参见:
-
volume
-
getVolume
public final double getVolume()
获取默认音量级别。- 结果
- 此剪辑的默认音量级别
- 另请参见:
-
volume
-
volumeProperty
public DoubleProperty volumeProperty()
剪辑播放的相对音量级别。 有效范围为0.0(静音)至1.0(全音量)。 值在内部被钳位到该范围,所以超出此范围的值将不会产生额外的影响。 音量由衰减控制,因此低于1.0的值将相应地降低声级。- 另请参见:
-
getVolume()
,setVolume(double)
-
setBalance
public void setBalance(double balance)
设置默认平衡级别。 新值只会影响后续的播放。- 参数
-
balance
- 新的默认余额 - 另请参见:
-
balance
-
getBalance
public double getBalance()
获取此剪辑的默认平衡级别。- 结果
- 此剪辑的默认余额
- 另请参见:
-
balance
-
balanceProperty
public DoubleProperty balanceProperty()
剪辑的相对左右音量级别。 有效范围是-1.0到1.0,其中-1.0给左声道全音量,而右声道静音,0.0给两个声道全音量,而1.0则向右声道提供全音量并使左声道静音。 超出此范围的值在内部夹紧。- 另请参见:
-
getBalance()
,setBalance(double)
-
setRate
public void setRate(double rate)
设置默认回放速率。 新值只会影响后续的播放。- 参数
-
rate
- 新的默认播放速率 - 另请参见:
-
rate
-
getRate
public double getRate()
获取默认播放速度。- 结果
- 此剪辑的默认播放速率
- 另请参见:
-
rate
-
rateProperty
public DoubleProperty rateProperty()
剪辑播放的相对速率。 有效范围为0.125(1/8速)至8.0(8倍速); 超出此范围的值在内部夹紧。 剪辑的正常播放为1.0; 任何其他费率将相应地影响音调和持续时间。- 另请参见:
-
getRate()
,setRate(double)
-
setPan
public void setPan(double pan)
设置默认的平移值。 新值只会影响后续的播放。- 参数
-
pan
- 新的默认平移值 - 另请参见:
-
pan
-
getPan
public double getPan()
获取默认的平移值。- 结果
- 该剪辑的默认平移值
- 另请参见:
-
pan
-
panProperty
public DoubleProperty panProperty()
剪辑的相对“中心”。 平移值0.0为正常播放剪辑,其中-1.0平移将剪辑完全移动到左声道,并且1.0完全移动到右声道。 与平衡不同,此设置将两个通道混合,因此通道都不会丢失数据。 在单声道剪辑上设置平移与设置平衡具有相同的效果,但CPU开销成本高得多,因此不建议使用单声道剪辑。- 另请参见:
-
getPan()
,setPan(double)
-
setPriority
public void setPriority(int priority)
设置默认播放优先级。 新值只会影响后续的播放。- 参数
-
priority
- 新的默认播放优先级 - 另请参见:
-
priority
-
getPriority
public int getPriority()
获取默认播放优先级。- 结果
- 此剪辑的默认播放优先级
- 另请参见:
-
priority
-
priorityProperty
public IntegerProperty priorityProperty()
剪辑相对于其他剪辑的相对优先级。 当超过最大允许剪辑次数时,此值用于确定要删除的剪辑。 优先级越低,剪辑越有可能被停止并从其占用的混音器通道中移除。 有效范围是任意整数; 没有限制。 所有剪辑的默认优先级为零,直到更改为止。 可以播放的同时声音的数量是实现的,也可能取决于系统。- 另请参见:
-
getPriority()
,setPriority(int)
-
setCycleCount
public void setCycleCount(int count)
设置默认循环计数。 新值只会影响后续的播放。- 参数
-
count
- 此剪辑的新默认循环计数 - 另请参见:
-
cycleCount
-
getCycleCount
public int getCycleCount()
获取默认循环计数。- 结果
- 该音频剪辑的默认cycleCount
- 另请参见:
-
cycleCount
-
cycleCountProperty
public IntegerProperty cycleCountProperty()
当调用play()
时剪辑的播放次数 。 一个循环数量为1次,只有一次,一次循环次数为2次,依次为2次。 有效范围是1或以上,但将其设置为INDEFINITE
将导致剪辑继续循环,直到调用stop()
。- 另请参见:
-
getCycleCount()
,setCycleCount(int)
-
play
public void play()
使用所有默认参数播放AudioClip
。
-
play
public void play(double volume)
使用除卷外的所有默认参数播放AudioClip
。 此方法不会修改剪辑的默认参数。- 参数
-
volume
- 播放剪辑的音量级别
-
play
public void play(double volume, double balance, double rate, double pan, int priority)
使用给定的参数播放AudioClip
。 由其关联属性指定的范围之外的值被夹紧。 此方法不会修改剪辑的默认参数。- 参数
-
volume
- 播放此剪辑的音量级别。 有效音量范围为0.0到1.0,其中0.0被有效地静音,1.0是满量程。 -
balance
- 立体声效果的左/右平衡或相对通道音量。 -
rate
- 播放速率倍增器。 1.0将以正常速率播放,而2.0将以一倍的速度播放。 -
pan
- 将左/右移位应用于剪辑。 平移值-1.0表示全左通道,1.0表示全通道,0.0表示无效。 -
priority
- 音频效果优先。 如果尝试同时播放太多效果,则优先级较低的效果将首先下降。
-
isPlaying
public boolean isPlaying()
说明这个AudioClip
是否在播放。 如果这返回true,那么play()
已经被调用了至少一次,它仍在播放。- 结果
- 如果任何混音器通道将此片段排队,则为真,否则为false
-
stop
public void stop()
Immediately stop all playback of thisAudioClip
.
-
-