ExoPlayerFilter
Filter ExoPlayer. I created a library that can do that. If you are involved in a video editing project, you may have considered whether to make it once.
I thought about creating it because ExoPlayer has double speed playback.
The texture used in mediaCodec is filtered by OpenGL.
Dependencies
dependencies {
compile 'com.daasuu:ExoPlayerFilter:0.1.3'
}
Sample Usage
STEP 1
Create an instance of SimpleExoPlayer. This time I will play the mp4 file.
If you want to play other formats such as HLS, please refer to Official Site.
BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();
TrackSelection.Factory videoTrackSelectionFactory = new AdaptiveTrackSelection.Factory(bandwidthMeter);
TrackSelector trackSelector = new DefaultTrackSelector(videoTrackSelectionFactory);
// Measures bandwidth during playback. Can be null if not required.
DefaultBandwidthMeter defaultBandwidthMeter = new DefaultBandwidthMeter();
// Produces DataSource instances through which media data is loaded.
DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(context, Util.getUserAgent(context, "yourApplicationName"), defaultBandwidthMeter);
// Produces Extractor instances for parsing the media data.
ExtractorsFactory extractorsFactory = new DefaultExtractorsFactory();
// This is the MediaSource representing the media to be played.
MediaSource videoSource = new ExtractorMediaSource(Uri.parse(MP4_URL), dataSourceFactory, extractorsFactory, null, null);
// SimpleExoPlayer
player = ExoPlayerFactory.newSimpleInstance(context, trackSelector);
// Prepare the player with the source.
player.prepare(videoSource);
player.setPlayWhenReady(true);
STEP 2 Create EPlayerView and set SimpleExoPlayer.
ePlayerView = new EPlayerView(this);
// set SimpleExoPlayer
ePlayerView.setSimpleExoPlayer(player);
ePlayerView.setLayoutParams(new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
// add ePlayerView to WrapperView
((MovieWrapperView) findViewById(R.id.layout_movie_wrapper)).addView(ePlayerView);
ePlayerView.onResume();
STEP 3 Set the filter. The list of filters is here. If you want to customize the filter, inherit GlFilter. Can be created.
ePlayerView.setGlFilter(new GlSepiaFilter());