CLAUDE.md 1.9 KB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

腾讯特效 SDK 封装模块

这是一个对腾讯云特效 SDK (TCMediaX) 的封装模块,为应用提供音视频特效能力。

模块架构

  • TCEffectManager: 单例管理器,负责 SDK 初始化和许可证管理
  • ITCEffectConfig: 配置接口,定义许可证 URL、密钥等配置信息
  • TCEffectStatEvent: 统计事件,用于上报初始化状态和错误信息

核心组件

TCEffectManager

  • 管理腾讯特效 SDK 的生命周期
  • 处理许可证验证和重试逻辑(最多重试3次,失败后30秒后再重试)
  • 自动清理过期日志文件(保留3天)
  • 支持多个许可证 URL 轮询

许可证管理

  • 支持多个许可证 URL 配置
  • 自动重试机制:失败后立即重试最多3次,之后30秒间隔重试
  • URL 域名替换功能(通过 replaceUrlHost 方法)
  • 许可证状态检查:isTcEffectEnable()

依赖关系

外部依赖:

  • libs.tencent.effect: 腾讯特效 SDK
  • libs.androidx.exifinterface: 图片 EXIF 信息处理

内部框架依赖:

  • frame:base: 基础框架(日志系统)
  • frame:coroutine: 协程工具(用于后台任务)
  • frame:util: 工具类(应用上下文、UI 线程切换)
  • frame:statistics: 统计框架(事件上报)
  • frame:zero: 零配置工具

初始化方式

// 实现配置接口
val config = object : ITCEffectConfig {
    override val licenceUrls: List<String> = listOf("url1", "url2")
    override val oldLicence: String = "old_license_key"
    override val licence: String = "license_key"
    override val logEnable: Boolean = true
    override fun replaceUrlHost(oldUrl: String): String = oldUrl
}

// 初始化管理器
TCEffectManager.init(config)

// 检查是否启用
if (TCEffectManager.isTcEffectEnable()) {
    // 使用特效功能
}