Hi,
Thank you for sharing the information.
What version of UE and the integration are you using?
Could you elaborate on this please?
As of the latest version of FMOD, there is still no direct way to retrieve the length of an individual audio track without using callbacks.
You could consider recursively searching a ChannelGroup and all its sub-groups to find and return the current active sound playing, which you could then retrieve its length. Please refer to
Channel::getChannelGroup
ChannelGroup::getNumChannels
ChannelGroup::getNumGroups
Channel::getCurrentSound
You could indeed create a parameter sheet to control the language switch and automate the volume of each track based on the parameter index(0 = English, 1 = Japanese, 2 = Chinese .etc) and called Studio::EventInstance::setParameterByName via code to set target language index:
For simple subtitle timing, you could consider using Studio::EventInstance::getTimelinePosition along with getLength()
to manually check if the current event has finished. This approach could be a temporary solution for a demo release but please note that it is less efficient and precise compared to using callbacks.
You are correct that loading multiple audio tracks for localization into memory could be an issue and might impact your games’ coding structure, but for a demo release, this might be acceptable.
There’s a similar post that might help you understand how to set up localization with programmer sound
and audio table
if you decide to implement that in the future: Parameter to swap between programmer instruments
You could also consider having a look at our callback scripting example for reference.
Hope this helps, let me know if you have any questions.