ExoPlayerFilter

介绍:

这个库在运行时使用 OpenGL Shaders渲染EXOPlayer视频

运行效果:

使用说明:

Gradle

    dependencies {
        // jCenter
        compile 'com.daasuu:ExoPlayerFilter:0.1.1'
    }

这个库包含EXOPlayer core r2.4.1

STEP 1

创建 SimpleExoPlayer 实例,这里我们播放的是MP4文件。

如果你想播放其它格式的文件,阅读 这里

    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

创建EPlayerView,并把SimpleExoPlayer设置给EPlayerView。

    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

设置 Filter. Filters 在 这里.

自定义的filter可以通过继承 GlFilter.java来创建。

    ePlayerView.setGlFilter(new GlSepiaFilter());
已下载
0