[JAVA] Filtrer ExoPlayer

ExoPlayerFilter

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());

Bien sûr, veuillez consulter ExoPlayerFilter et je serais très heureux si vous pouviez ajouter Star. Les demandes d'extraction telles que la création d'un tel filtre sont également les bienvenues!

Recommended Posts

Filtrer ExoPlayer
[Java] Filtre de servlet