非常好用的播放器视频渲染SDK

半年之前我写过一篇文章——为播放器外接一套渲染框架,本质就是通过OpenGL将视频的内容绘制在SurfaceView或者TextureView的画布上,实现控制视频渲染的作用,当时有很多小伙伴很希望接入这个SDK。最近花了一点时间,将SDK封装好了,本文就是来介绍一下如何使用这个SDK。

视频渲染SDK接入

  • 接入工程

工程的build.gradle中添加:

allprojects {
    repositories {
        google()
        jcenter()
        maven {
            url 'https://jitpack.io'
        }
    }
}

app的build.gradle中添加:

dependencies {

    implementation 'com.github.JeffMony:Laker:1.0.5'

}

接口介绍

  • setOnSurfaceListener 设置SurfaceView或者TextureView的监听
  • setOnRenderListener设置渲染错误的回调,如果渲染过程中出现错误会回调给上层
  • setTextureView和setSurfaceView分别支持设置SurfaceView和TextureView
  • setVideoSize在播放器解析获得视频的宽高之后,需要传给渲染SDK,渲染SDK只负责渲染,不负责任何视频信息的解析
  • addEffect/updateEffect/deleteEffect 表示增加特效、更新特效、删除特效,这是渲染SDK的核心接口,可以支持各种各样的特效
  • addFilter/updateFilter/updateFilterIntensity/deleteFilter 表示增加滤镜、更新滤镜、更新滤镜强度、删除滤镜
  • updateFrame如果在暂停情况下应用特效也可以更新上去
  • captureFrame可以截取当前播放帧
  • setMirror可以设置水平镜像和垂直镜像
  • destroy用完了一定要记得销毁资源
public interface IRenderProcess {

    void setOnSurfaceListener(OnSurfaceListener listener);
    void setOnRenderListener(OnRenderListener listener);
    void setTextureView(TextureView view);
    void setSurfaceView(VideoSurfaceView view);
    void setVideoSize(int width, int height);
    int addEffect(String config);
    void updateEffect(int id, String config);
    void deleteEffect(int id);
    int addFilter(String config);
    void updateFilter(int id, String config);
    void updateFilterIntensity(int id, int intensity);
    void deleteFilter(int id);
    void updateFrame();
    void captureFrame(OnCaptureListener listener);
    void setMirror(MirrorType type);
    MirrorType getMirrorType();
    void destroy();
}

效果展示

具体的代码已经上传到github上了——github.com/JeffMony/PlayerSDK,大家可以看下运行的效果图:

图片
非常好用的播放器视频渲染SDK

上面只是简单展示了例子,第一张是视频原画,第二章是水平镜像,第三章是垂直镜像,第四张是添加水印logo,还有很多其他的功能,建议fork或者star一下,后续还会继续更新新的特效,如果你有什么建议,可以私信我。

建议选择“一键高清”,你和原来的视频对比下,会有惊喜。

作者: 音视频平凡之路

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

发表回复

登录后才能评论