From 67d5722b2f8b711ac4cd0b691e832ea1ffbca4a3 Mon Sep 17 00:00:00 2001 From: bbd_pc Date: Sat, 28 Jun 2025 04:27:18 +0800 Subject: [PATCH] =?UTF-8?q?balloon=20=E8=AF=BB=E5=8F=96=20wav=20=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E6=98=AF=E5=90=A6=E5=AD=98=E5=9C=A8=E6=97=B6=E6=A3=80?= =?UTF-8?q?=E6=9F=A5=20.IMPORT?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scene/dialog/balloon.gd | 40 ++++++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/scene/dialog/balloon.gd b/scene/dialog/balloon.gd index 9cd90216..45a62b05 100755 --- a/scene/dialog/balloon.gd +++ b/scene/dialog/balloon.gd @@ -121,10 +121,10 @@ func _apply_tags() -> void: if db_str: var db = float(db_str) audio_stream_player.volume_db = db - if GlobalConfig.DEBUG: - print("audio_stream_player.volume_db = %s" % db) else: 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 current_line_ban_skip = dialogue_line.tags.has("ban_skip") @@ -184,21 +184,29 @@ func apply_dialogue_line() -> void: # await dialogue_label.finished_typing #sound - var initial_translation_key = dialogue_line.translation_key - var chapter = initial_translation_key.substr(0, 3) var audio_time_len := 0.0 - # 因为版权问题,有些 mp3 文件打不开,所以使用 ogg 格式 - var audio_path = ( - "res://asset/audio/peiyin_new/" + chapter + "/" + initial_translation_key + ".wav" - ) - if FileAccess.file_exists(audio_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() - elif audio_stream_player.playing: - audio_stream_player.stop() + var initial_translation_key = dialogue_line.translation_key + if initial_translation_key and initial_translation_key.match("c??_*"): + var chapter = initial_translation_key.substr(0, 3) + # 因为版权问题,有些 mp3 文件打不开,所以使用 ogg 格式 + var audio_path = ( + "res://asset/audio/peiyin_new/" + chapter + "/" + initial_translation_key + ".wav" + ) + # 打包时只有 .import 文件可供检查! + var audio_import_path = ( + "res://asset/audio/peiyin_new/" + chapter + "/" + initial_translation_key + ".wav.import" + ) + 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: # await dialogue_label.finished_typing