ExoPlayerFilter
Filtrez ExoPlayer. J'ai créé une bibliothèque qui peut faire cela. Ceux qui ont été impliqués dans des projets de montage vidéo peuvent avoir envisagé de le faire une fois.
J'ai pensé à le créer car ExoPlayer a une lecture à double vitesse.
La texture utilisée dans mediaCodec est filtrée par OpenGL.
Dependencies
dependencies {
compile 'com.daasuu:ExoPlayerFilter:0.1.3'
}
Sample Usage
STEP 1
Créez une instance de SimpleExoPlayer. Cette fois, je vais lire le fichier mp4.
Si vous souhaitez lire d'autres formats tels que HLS, veuillez vous référer au Site officiel.
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 Créez EPlayerView et définissez 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 Réglez le filtre. La liste des filtres est ici. Si vous souhaitez personnaliser le filtre, héritez de GlFilter. Peut être créé.
ePlayerView.setGlFilter(new GlSepiaFilter());