YYEVA-Android

Project Url: yylive/YYEVA-Android
More: Author   ReportBugs   
Tags:

简体中文 | English

轻量级 高性能 跨平台 MP4 礼物播放器

支持本项目

请支持我们的项目,点击⭐⭐⭐, 让更多的人看到该项目

案例演示

图片名称

介绍

  • YYEVAPlayer 是一个轻量的动画渲染库。通过这里导出动画文件
  • 通过这里可以获取设计的测试资源文件
  • YYEVA-Android 使用 Native Opengles 渲染视频,为你提供高性能、低开销的动画体验。

平台支持

  • 支持 AndroidIOSWeb 点击了解详细接入
  • 资源制作的 AE 插件使用规范 详情
  • 数据结构定义 详情
  • 项目相关文章、设计规范等 详情

用法

我们在这里介绍 YYEVA-Android 的用法。想要知道如何导出动画,点击这里

使用 Gradle 安装依赖

build.gradle

allprojects {
    repositories {
        maven { url 'https://jitpack.io' }
    }
}
dependencies {
    implementation 'com.github.yylive.YYEVA-Android:yyeva:1.0.17'
}
// 2.0.0-beta 版本
dependencies {
    implementation 'com.github.yylive.YYEVA-Android:yyeva:2.0.0-beta'
}

放置混合 mp4 文件 在 Assets 中

如需要使用 SurfaceView 可以使用 EvaAnimView,需要使用 TextureView 可以使用 EvaAnimViewV3,demo 使用 EvaAnimViewV3

替换元素接口

interface IEvaFetchResource {
    // 获取图片 (暂时不支持 Bitmap.Config.ALPHA_8 主要是因为一些机型 opengl 兼容问题)
    fun setImage(resource: EvaResource, result:(Bitmap?) -> Unit)

    // 获取文字
    fun setText(resource: EvaResource, result:(String?) -> Unit)

    // 资源释放通知
    fun releaseSrc(resources: List<EvaResource>)
}

具体实现可以参照 EvaDemoActivity 的代码实验,替换自身 mp4 中的元素。

播放使用 IEvaAnimView 接口

interface IEvaAnimView {
    ...
    //播放文件
    fun startPlay(file: File)
    //播放本地文件
    fun startPlay(assetManager: AssetManager, assetsPath: String)
    //停止播放
    fun stopPlay()
    //是否正在运行
    fun isRunning(): Boolean
    //循环播放
    fun setLoop(playLoop: Int)
    //设置背景图
    fun setBgImage(bg: Bitmap)
    ...
}

2.0.0-beta 播放使用 OptionParams 类配置

class OptionParams {
    var frameRate = 30
    var playCount = 1
    var isMute = false
    var isRemoteService = true  //使用多进程
    var mp4Address = ""
    var scaleType = 1   // 1=>裁剪居中, 2=>全屏拉伸  3=>原资源大小
    var filterType = "" //高清算法 hermite lagrange
}

代码

QQ 交流群

qqgroup

鸣谢

  • 感谢 vap 优秀的混合渲染方案、项目 Render 混合部分重用了 vap 的方案

Dev Team


Cangwang
Apps
About Me
GitHub: Trinea
Facebook: Dev Tools