I think that you should instanciate your cvlc instance outside of the route, and store the data of what video is playing and what duration somewhere else (a state machine of some sort), this way you can use onEnded independetly that your route, and your cvlc instance