非常好用的播放器渲染SDK
视频渲染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,大家可以看下运行的效果图:
上面只是简单展示了例子,第一张是视频原画,第二章是水平镜像,第三章是垂直镜像,第四张是添加水印logo,还有很多其他的功能,建议fork或者star一下,后续还会继续更新新的特效,如果你有什么建议,可以私信我。
建议选择“一键高清”,你和原来的视频对比下,会有惊喜。
相关文章
- windows虚拟显示器SDK开发和提供
- Android SDK 安装及环境配置教程
- Eclipse+ADT+Android SDK 搭建安卓开发环境「建议收藏」
- Android SDK下载安装及环境配置
- TRTC Electron SDK: Mac 下构建双架构包
- android sdk安装过程,图文详解Android 3.0 SDK安装教程
- 海康sdk协议接口_海康sadp搜索不到设备
- 美团开放平台SDK自动生成技术与实践
- 通过 Realtek SDK 漏洞攻击一窥 IoT 供应链威胁
- 【错误记录】Flutter 报错 Downloading the Dart SDK using the BITS service failed, retrying with WebRequest...
- linux SDK安装: 一步步指引(linux下sdk安装)
- java搭建Linux环境下的Java SDK(sdk-linux)
- Linux SDK:开发者的利器(linuxsdk是什么)
- Win11/Win10 全新开发,Windows App SDK 1.0.0 体验工具包发布:支持 WinUI 3、推送通知、窗口化…
- 盛派SDK助力Redis高效存储(盛派sdk redis)
- 揭秘阿里云 RTS SDK 是如何实现直播降低延迟和卡顿