I know this is an old post, but I’m posting my method in case someone stumbles across this question. I did a very simple blueprint logic (and probably inefficient, but works for me.) I track the time the sound plays by a variable, let’s assume MusicPlayedFor.
This is initially set to 0 at the beginning.
Whenever my sound starts playing, I set the time by Get Audio Time Seconds
into a variable, let’s say MusicStartedAt.
Whenever it ‘pauses’ (in my case, by player input), it actually Stop
s and set another variable MusicPausedAt
by the Get Audio Time Seconds
.
Subtracting: MusicPausedAt
- MusicStartedAt
gives the time the current chunk of sound played.
Adding: MusicStartedAt
= MusicStartedAt
+ ( MusicPausedAt
- MusicStartedAt
) gives the time from the start of the sound till the pause action.
Then, when the next time Play
is hit, simply pipe this time into the Start Time
pin of the Play
node. Sound will start playing from where it left off.
All this higgedly-piggely will be unnecessary once the devs simply expose a stupid pause node. Till then, I’m sticking to this solution. Comments and criticisms are welcome!