- 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 描述 DoublePropertybalance剪辑的相对左右音量级别。IntegerPropertycycleCountDoublePropertypan剪辑的相对“中心”。IntegerPropertypriority剪辑相对于其他剪辑的相对优先级。DoublePropertyrate剪辑播放的相对速率。DoublePropertyvolume剪辑播放的相对音量级别。
-
Field Summary
Fields Modifier and Type Field 描述 static intINDEFINITE当cycleCount设置为此值时,AudioClip将连续循环,直到停止。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 DoublePropertybalanceProperty()剪辑的相对左右音量级别。IntegerPropertycycleCountProperty()调用play()时播放剪辑的次数。doublegetBalance()获取此剪辑的默认平衡级别。intgetCycleCount()获取默认循环计数。doublegetPan()获取默认的平移值。intgetPriority()获取默认播放优先级。doublegetRate()获取默认播放速度。StringgetSource()获取用于创建此源的源URLAudioClip。doublegetVolume()获取默认音量级别。booleanisPlaying()指示这个AudioClip是否正在播放。DoublePropertypanProperty()剪辑的相对“中心”。voidplay()使用所有默认参数播放AudioClip。voidplay(double volume)使用除卷外的所有默认参数播放AudioClip。voidplay(double volume, double balance, double rate, double pan, int priority)使用给定的参数播放AudioClip。IntegerPropertypriorityProperty()剪辑相对于其他剪辑的相对优先级。DoublePropertyrateProperty()剪辑播放的相对速率。voidsetBalance(double balance)设置默认平衡级别。voidsetCycleCount(int count)设置默认循环计数。voidsetPan(double pan)设置默认的平移值。voidsetPriority(int priority)设置默认播放优先级。voidsetRate(double rate)设置默认回放速率。voidsetVolume(double value)设置默认音量级别。voidstop()立即停止这个AudioClip所有播放。DoublePropertyvolumeProperty()剪辑播放的相对音量级别。
-
-
-
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.
-
-