Skip to content

An Android media player library powered by libVLC and Open Subtitles.

License

Notifications You must be signed in to change notification settings

masterwok/simple-vlc-player

Repository files navigation

Release

[deprecated] simple-vlc-player

I'm no longer maintaining this project due to time constraints.

An Android media player library powered by LibVLC and Open Subtitles.

Notice

I'm currently unable to maintain this project. There are a few open issues that need to be resolved. Pull requests are welcome.

Usage

Options can be provided for the initialization of LibVLC by using the VlcOptionsProvider singleton. This optional configuration should only be provided once during app initialization, or at some point before starting the MediaPlayerActivity. If no options are provided, then a default configuration is provided when initializing LibVLC. To make life easier, the VlcOptionsProvider.Builder class is available to help build a list of common options. If an option is not provided to the builder, then the default value for that option is used. For example, the following enables LibVLC verbose logging, sets the subtitle background opactiy, and sets the subtitle encoding:

VlcOptionsProvider
        .getInstance()
        .setOptions(
                new VlcOptionsProvider.Builder(this)
                        .withSubtitleBackgroundOpacity(255)
                        // See R.array.subtitles_encoding_values
                        .withSubtitleEncoding("KOI8-R")
                        .setVerbose(true)
                        .build()
        );

The MediaPlayerActivity can be started by providing a required media Uri and an optional subtitle Uri. The subtitle Uri must be a local file. Consumers of this library should also supply an opensubtitles.org User-Agent and preferred subtitle language via the intent. As stated in the Open Subtitles documentation, the temporary User-Agent should only be used during development and testing as it periodically changes.

Intent intent = new Intent(this, MediaPlayerActivity.class);

intent.putExtra(MediaPlayerActivity.MediaUri, videoUri);
intent.putExtra(MediaPlayerActivity.SubtitleUri, subtitleUri);
intent.putExtra(MediaPlayerActivity.OpenSubtitlesUserAgent, "TemporaryUserAgent")
// See R.array.language_values
intent.putExtra(MediaPlayerActivity.SubtitleLanguageCode, "rus")

startActivity(intent);

Configuration

Add this in your root build.gradle at the end of repositories:

allprojects {
    repositories {
        maven { url "https://jitpack.io" }
    }
}

and add the following in the dependent module:

dependencies {
    implementation 'com.github.masterwok:simple-vlc-player:1.1.16'
}

Projects using simple-vlc-player

Licensing

Please refer to the VLC FAQ.

Screenshots

Local Playback Renderer Item Selection Casting Subtitles