yylive / YYEVA-Android

Apache License 2.0
214 stars 36 forks source link

YY-EVA Android

简体中文 | English

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

支持本项目

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

案例演示

图片名称

介绍

平台支持

用法

我们在这里介绍 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

鸣谢

Dev Team


Cangwang