From f91ee82b732752a04f27390602683c74a43227f6 Mon Sep 17 00:00:00 2001 From: Mihai Alexandru <77043862+MAJigsaw77@users.noreply.github.com> Date: Mon, 1 Jan 2024 20:44:51 +0200 Subject: [PATCH] Use haxelib release of hxvlc. (#231) * Update libs.xml * Update VideoCutscene.hx * Fixed bug with videos --------- Co-authored-by: NeeEoo --- libs.xml | 2 +- source/funkin/game/cutscenes/VideoCutscene.hx | 36 ++++++++++++++++--- 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/libs.xml b/libs.xml index 70e725921..262fe27a3 100644 --- a/libs.xml +++ b/libs.xml @@ -12,7 +12,7 @@ - + diff --git a/source/funkin/game/cutscenes/VideoCutscene.hx b/source/funkin/game/cutscenes/VideoCutscene.hx index 68a86b928..8e290631d 100644 --- a/source/funkin/game/cutscenes/VideoCutscene.hx +++ b/source/funkin/game/cutscenes/VideoCutscene.hx @@ -7,7 +7,10 @@ import flixel.addons.display.FlxBackdrop; import sys.io.File; #end import funkin.backend.FunkinText; +import haxe.io.FPHelper; import haxe.xml.Access; +import haxe.Int64; +import flixel.util.FlxTimer; #if VIDEO_CUTSCENES import hxvlc.flixel.FlxVideo; #end @@ -56,6 +59,11 @@ class VideoCutscene extends Cutscene { video.onEndReached.add(video.dispose); video.onEndReached.add(close); + //cover = new FlxSprite(0, FlxG.height * 0.85).makeSolid(FlxG.width + 50, FlxG.height + 50, 0xFF000000); + //cover.scrollFactor.set(0, 0); + //cover.screenCenter(); + //add(cover); + bg = new FlxSprite(0, FlxG.height * 0.85).makeGraphic(1, 1, 0xFF000000); bg.alpha = 0.5; bg.visible = false; @@ -85,7 +93,12 @@ class VideoCutscene extends Cutscene { videoReady = true; }); } else { - video.play(localPath); + if (video.load(localPath)) + new FlxTimer().start(0.001, function(tmr:FlxTimer) { + video.play(); + }); + else + close(); } add(bg); add(subtitle); @@ -160,13 +173,28 @@ class VideoCutscene extends Cutscene { #if VIDEO_CUTSCENES if (videoReady) { videoReady = false; - video.play(localPath); + + if (video.load(localPath)) + new FlxTimer().start(0.001, function(tmr:FlxTimer) { + video.play(); + }); + else + { + close(); + + if (loadingBackdrop != null) + loadingBackdrop.visible = false; + + return; + } + if (loadingBackdrop != null) loadingBackdrop.visible = false; } @:privateAccess - var time = video.time; - while (subtitles.length > 0 && subtitles[0].time < time) + var time:Int64 = video.time; + + while (subtitles.length > 0 && subtitles[0].time < Math.round(FPHelper.i64ToDouble(time.low, time.high))) setSubtitle(subtitles.shift()); if (loadingBackdrop != null) {