Building on previous tutorials, we will now use the marquee to overlay some text on the video.
Let's Get Started
You should now already have a basic template for how to create a vlcj application, so this tutorial will no longer duplicate all of the code each time - instead we'll just show the new code fragments.
Create a Marquee
You create a marquee by using a builder.
Using the Marquee
For historical reasons there are two ways to use the marquee, whichever way you choose is essentially a matter of preference.
You do not have to use the builder, you can invoke the individual API methods directly.
Disabling the Marquee
Using the builder approach, create a marquee without invoking
then apply or set it.
Using the API directly:
Marquee Not Working?
The first thing to check is to make sure that you have enabled VLC's marquee
sub-picture module. If you use the media player component framework (like
EmbeddedMediaPlayerComponent rather than creating the media player yourself
or via the factory, then this module is enabled by default.
If you do need to explicitly enable the marquee module, make sure to use the
following arguments (in addition to any others you need) with your
If you need to enable both marquee and logo together, as is often the case, you can specify arguments like this:
It is not possible to set and enable a marquee dynamically on a media player until a short period of time after the media has started playing. It is not easy to know when this will work with 100% certainty.
The most obvious way to dynamically set the marquee is on receipt of a
videoOutput event in a
MediaPlayerEventListener, but this might be a
fraction too early. It will likely be prudent to kick off some sort of short
timer in response to this event and set the marquee when the timer expires.
There may be some other more reliable events such as those dealing with elementary streams, but frankly it is difficult to be certain about this.
If you do not need to dynamically set a marquee, you can try setting all of the
necessary marquee options explicitly when you create a