Skip to content

yylive/YYEVA-Android

Repository files navigation

YY-EVA Android

简体中文 | 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