Skip to content

YunJavaPro/Silk-Codec-Android

Repository files navigation

Silk-Codec-Android

License Platform Architecture Min SDK Download JitPack

轻量级 Android 音频编解码库,基于 Silk SDK / dr_libs / stb_vorbis / lame / android_media 实现底层解码,JNI 封装,最高支持 48000Hz 采样率。


特性

特性 说明
体积极小 完整库仅 ~500KB
高速转换 原生 C/C++ 实现
格式丰富 mp3 / wav / flac / ogg / silk 等
自动识别 输入输出格式智能检测
高采样率 最高 48000Hz

支持格式

输入 输出
mp3 / wav / flac / ogg / silk / amr / pcm silk / mp3 / pcm

采样率: 8000 / 12000 / 16000 / 24000 / 32000 / 44100 / 48000 Hz


快速使用

SilkCodec codec = new SilkCodec();

// 任意格式 → Silk
codec.autoToSilk("/sdcard/input.mp3", "/sdcard/output.silk", 24000);

// Silk → MP3
codec.silkToMp3("/sdcard/input.silk", "/sdcard/output.mp3", 24000);

// 任意格式 → PCM
codec.autoToPcm("/sdcard/input.wav", "/sdcard/output.pcm");

// 获取文件类型
int type = codec.getFileType("/sdcard/somefile");
// 返回:0=未知 1=Silk 2=MP3 3=WAV 4=FLAC 5=OGG 6=PCM 7=M4A 8=MP4

// 获取音频时长(毫秒)
long duration = codec.getDuration("/sdcard/somefile");

错误码

返回值 含义
0 成功
-1 无法获取文件扩展名
-2 不支持的音频格式
-3 PCM 转 Silk 需要额外参数
-4 输入已经是 PCM 格式
-5 输入已经是 Silk 格式
-10 输出必须是 .silk 或 .slk
-11 输出必须是 .mp3
-12 输出必须是 .pcm 或 .raw
-13 文件格式与方法不匹配
-201 Silk 转 MP3 文件错误
-202 Silk 转 MP3 文件错误
-301 MP3 解码错误
-302 MP3 文件错误
-401 OGG 解码错误
-402 OGG 文件错误
-501 WAV 解码错误
-502 WAV 文件错误
-601 FLAC 解码错误
-602 FLAC 文件错误
-701 PCM 参数错误
-702 PCM 文件错误
-703 PCM 参数错误
-801 AAC/M4A 解码错误 (文件不存在)
-802 AAC/M4A 解码错误 (未找到音频轨道)
-803 AAC/M4A 解码错误 (格式不支持)
-901 AAC 编码错误 (PCM 文件不存在)
-902 AAC 编码错误 (编码异常)
-911 M4A 编码错误 (PCM 文件不存在)
-912 M4A 编码错误 (Muxer 失败)
-1001 ~ -1009 Silk 转 AAC/M4A 错误
-1011 ~ -1012 MP3 转 AAC/M4A 错误
-1021 ~ -1022 WAV 转 AAC/M4A 错误
-1031 ~ -1039 M4A/AAC 转 Silk 错误
-1051 ~ -1059 M4A/AAC 转 AAC 错误
-1061 ~ -1069 M4A/AAC 转 M4A 错误
-2000 M4A/AAC 转 Silk 错误 (解码失败)

引入依赖

settings.gradle.kts:

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        maven { url = uri("https://jitpack.io") }
    }
}

build.gradle.kts (Module):

dependencies {
    implementation("com.github.YunJavaPro:Silk-Codec-Android:$version")
}

系统要求

  • Android SDK 26+
  • arm64-v8a

协议

Apache License 2.0

About

Android 平台 Silk 音频编解码工具

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors