balloon 读取 wav 文件是否存在时检查 .IMPORT

This commit is contained in:
bbd_pc 2025-06-28 04:27:18 +08:00
parent 346efd0b59
commit 67d5722b2f

View File

@ -121,10 +121,10 @@ func _apply_tags() -> void:
if db_str: if db_str:
var db = float(db_str) var db = float(db_str)
audio_stream_player.volume_db = db audio_stream_player.volume_db = db
if GlobalConfig.DEBUG:
print("audio_stream_player.volume_db = %s" % db)
else: else:
audio_stream_player.volume_db = 0 audio_stream_player.volume_db = 0
if GlobalConfig.DEBUG:
print("audio_stream_player.volume_db = %s" % audio_stream_player.volume_db)
dialogue_line.text = text dialogue_line.text = text
current_line_ban_skip = dialogue_line.tags.has("ban_skip") current_line_ban_skip = dialogue_line.tags.has("ban_skip")
@ -184,21 +184,29 @@ func apply_dialogue_line() -> void:
# await dialogue_label.finished_typing # await dialogue_label.finished_typing
#sound #sound
var initial_translation_key = dialogue_line.translation_key
var chapter = initial_translation_key.substr(0, 3)
var audio_time_len := 0.0 var audio_time_len := 0.0
# 因为版权问题,有些 mp3 文件打不开,所以使用 ogg 格式 var initial_translation_key = dialogue_line.translation_key
var audio_path = ( if initial_translation_key and initial_translation_key.match("c??_*"):
"res://asset/audio/peiyin_new/" + chapter + "/" + initial_translation_key + ".wav" var chapter = initial_translation_key.substr(0, 3)
) # 因为版权问题,有些 mp3 文件打不开,所以使用 ogg 格式
if FileAccess.file_exists(audio_path): var audio_path = (
var stream = load(audio_path) "res://asset/audio/peiyin_new/" + chapter + "/" + initial_translation_key + ".wav"
audio_time_len = stream.get_length() )
if audio_stream_player.stream != stream or not audio_stream_player.playing: # 打包时只有 .import 文件可供检查!
audio_stream_player.stream = stream var audio_import_path = (
audio_stream_player.play() "res://asset/audio/peiyin_new/" + chapter + "/" + initial_translation_key + ".wav.import"
elif audio_stream_player.playing: )
audio_stream_player.stop() if FileAccess.file_exists(audio_import_path):
var stream = load(audio_path)
audio_time_len = stream.get_length()
if audio_stream_player.stream != stream or not audio_stream_player.playing:
audio_stream_player.stream = stream
audio_stream_player.play()
else:
if audio_stream_player.playing:
audio_stream_player.stop()
if GlobalConfig.DEBUG:
printerr("Dialogue no audio found! audio_path = %s audio_import_path = %s" % [audio_path, audio_import_path])
# if dialogue_label.is_typing: # if dialogue_label.is_typing:
# await dialogue_label.finished_typing # await dialogue_label.finished_typing