Added some guard conditionals to AudioFader to make it resilient against, for example, playing null streams.
This commit is contained in:
parent
7276a4a978
commit
b6b19cbd7b
|
@ -27,12 +27,13 @@ func _create_members() -> void:
|
||||||
## Fades in the current audio player.
|
## Fades in the current audio player.
|
||||||
func fade_in(stream: AudioStream, fade: float = DEFAULT_AUDIO_FADE) -> void:
|
func fade_in(stream: AudioStream, fade: float = DEFAULT_AUDIO_FADE) -> void:
|
||||||
await fade_out()
|
await fade_out()
|
||||||
player.volume_db = AUDIO_FADE_MIN_VOLUME
|
|
||||||
player.stream = stream
|
player.stream = stream
|
||||||
player.play()
|
if player.stream:
|
||||||
var tween := await tween_channel.create_tween(player)
|
player.volume_db = AUDIO_FADE_MIN_VOLUME
|
||||||
tween.tween_property(player, ^'volume_db', 0.0, fade)
|
player.play()
|
||||||
await tween_channel.sync(tween)
|
var tween := await tween_channel.create_tween(player)
|
||||||
|
tween.tween_property(player, ^'volume_db', 0.0, fade)
|
||||||
|
await tween_channel.sync(tween)
|
||||||
|
|
||||||
## Fades out an arbitrary audio player on an arbitrary tween channel.
|
## Fades out an arbitrary audio player on an arbitrary tween channel.
|
||||||
static func _fade_out_foreign(
|
static func _fade_out_foreign(
|
||||||
|
@ -40,7 +41,7 @@ static func _fade_out_foreign(
|
||||||
p_tween_channel: TweenChannel,
|
p_tween_channel: TweenChannel,
|
||||||
fade: float = DEFAULT_AUDIO_FADE
|
fade: float = DEFAULT_AUDIO_FADE
|
||||||
) -> void:
|
) -> void:
|
||||||
if p_player.volume_db > AUDIO_FADE_MIN_VOLUME:
|
if p_player.playing and p_player.volume_db > AUDIO_FADE_MIN_VOLUME:
|
||||||
var tween := await p_tween_channel.create_tween(p_player)
|
var tween := await p_tween_channel.create_tween(p_player)
|
||||||
tween.tween_property(
|
tween.tween_property(
|
||||||
p_player, ^'volume_db', AUDIO_FADE_MIN_VOLUME, fade
|
p_player, ^'volume_db', AUDIO_FADE_MIN_VOLUME, fade
|
||||||
|
@ -55,9 +56,10 @@ func fade_out(fade: float = DEFAULT_AUDIO_FADE) -> void:
|
||||||
## Plays audio without fading in.
|
## Plays audio without fading in.
|
||||||
func play(stream: AudioStream) -> void:
|
func play(stream: AudioStream) -> void:
|
||||||
await player.fade_out()
|
await player.fade_out()
|
||||||
player.volume_db = 0.0
|
|
||||||
player.stream = stream
|
player.stream = stream
|
||||||
player.play()
|
if player.stream:
|
||||||
|
player.volume_db = 0.0
|
||||||
|
player.play()
|
||||||
|
|
||||||
## Fades out old audio and fades in new audio at the same time.
|
## Fades out old audio and fades in new audio at the same time.
|
||||||
func crossfade(stream: AudioStream, fade: float = DEFAULT_AUDIO_FADE) -> void:
|
func crossfade(stream: AudioStream, fade: float = DEFAULT_AUDIO_FADE) -> void:
|
||||||
|
|
Loading…
Reference in New Issue