From a4ee8b80eec6ebfe77323f69b61e021188872765 Mon Sep 17 00:00:00 2001 From: Apehum Date: Mon, 19 Jan 2026 20:30:55 +0800 Subject: [PATCH] fix: invoke audio render only if audio render is initialized --- changelog.md | 2 +- gradle.properties | 2 +- .../java/su/plo/replayvoice/ReplayVoiceAddon.java | 2 +- .../su/plo/replayvoice/mixin/MixinProcessTask.java | 2 +- .../su/plo/replayvoice/render/VoiceAudioRender.java | 12 +++++++++++- 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/changelog.md b/changelog.md index 61977b5..71f08f0 100644 --- a/changelog.md +++ b/changelog.md @@ -1 +1 @@ -- Fixed audio sometimes doesn't render resulting in silent audio file export. +- Fixed crash when trying to render a screenshot in replay. diff --git a/gradle.properties b/gradle.properties index d92f918..5fb6685 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -version=2.1.3 +version=2.1.4 org.gradle.jvmargs=-Xmx4G kotlin.stdlib.default.dependency=false diff --git a/src/main/java/su/plo/replayvoice/ReplayVoiceAddon.java b/src/main/java/su/plo/replayvoice/ReplayVoiceAddon.java index 10b9b30..219773b 100644 --- a/src/main/java/su/plo/replayvoice/ReplayVoiceAddon.java +++ b/src/main/java/su/plo/replayvoice/ReplayVoiceAddon.java @@ -228,7 +228,7 @@ public void onUdpClientConnect(@NotNull UdpClientConnectEvent event) { @EventSubscribe public void onUdpClientConnected(@NotNull ServerInfoInitializedEvent event) { if (!VoiceAudioRender.isRendering()) return; - VoiceAudioRender.AUDIO_RENDER.initialize(); + VoiceAudioRender.initialize(); } @EventSubscribe diff --git a/src/main/java/su/plo/replayvoice/mixin/MixinProcessTask.java b/src/main/java/su/plo/replayvoice/mixin/MixinProcessTask.java index 5043c4c..ccfe2d5 100644 --- a/src/main/java/su/plo/replayvoice/mixin/MixinProcessTask.java +++ b/src/main/java/su/plo/replayvoice/mixin/MixinProcessTask.java @@ -11,6 +11,6 @@ public final class MixinProcessTask { @Inject(method = "run", at = @At(value = "INVOKE", target = "Lcom/replaymod/render/rendering/FrameConsumer;consume(Ljava/util/Map;)V", shift = At.Shift.BEFORE)) public void run(CallbackInfo ci) { - VoiceAudioRender.AUDIO_RENDER.render(); + VoiceAudioRender.render(); } } diff --git a/src/main/java/su/plo/replayvoice/render/VoiceAudioRender.java b/src/main/java/su/plo/replayvoice/render/VoiceAudioRender.java index a5325bb..a72a2a3 100644 --- a/src/main/java/su/plo/replayvoice/render/VoiceAudioRender.java +++ b/src/main/java/su/plo/replayvoice/render/VoiceAudioRender.java @@ -8,12 +8,22 @@ public final class VoiceAudioRender { - public static LoopbackAudioRender AUDIO_RENDER; + private static LoopbackAudioRender AUDIO_RENDER; public static boolean isRendering() { return AUDIO_RENDER != null; } + public static void render() { + if (AUDIO_RENDER == null) return; + AUDIO_RENDER.render(); + } + + public static void initialize() { + if (AUDIO_RENDER == null) return; + AUDIO_RENDER.initialize(); + } + public static void startRender(@NotNull VideoRenderer renderer) { if (AUDIO_RENDER != null) return;