Skip to content

D10NGYANG/DLPcmResampleUtil

Repository files navigation

DLPcmResampleUtil

PCM文件调整采样率,Java库

参考

版本

version = 0.1.1

使用说明

1、添加仓库

maven { url 'https://raw.githubusercontent.com/D10NGYANG/maven-repo/main/repository'}

2、添加依赖

implementation 'com.github.D10NGYANG:DLPcmResampleUtil:$version'

3、混淆

-keep class com.d10ng.pcmresample.** {*;}
-dontwarn com.d10ng.pcmresample.**

4、使用

对文件进行重采样

/**
 * 重采样,保持通道数、位深、编码方式不变
 * - 录音文件时长越长,处理越耗时,不要在UI线程进行操作
 * @param srcPath String 源文件路径
 * @param targetPath String 目标文件路径
 * @param srcSampleRate Int 源采样率
 * @param targetSampleRate Int 目标采样率
 * @param channelType ChannelType 通道数
 * @param encodingType EncodingType 位深
 */
fun resample(
    srcPath: String,
    targetPath: String,
    srcSampleRate: Int,
    targetSampleRate: Int,
    channelType: ChannelType = ChannelType.MONO,
    encodingType: EncodingType = EncodingType.PCM_16BIT
)

对字节数据进行重采样

/**
 * 重采样,保持通道数、位深、编码方式不变
 * - 录音文件时长越长,处理越耗时,不要在UI线程进行操作
 * @param srcData ByteArray 源文件数据
 * @param srcSampleRate Int 源采样率
 * @param targetSampleRate Int 目标采样率
 * @param channelType ChannelType 通道数
 * @param encodingType EncodingType 位深
 * @return ByteArray 重采样后的数据
 */
fun resample(
    srcData: ByteArray,
    srcSampleRate: Int,
    targetSampleRate: Int,
    channelType: ChannelType = ChannelType.MONO,
    encodingType: EncodingType = EncodingType.PCM_16BIT
): ByteArray

5、示例

参考 Test 文件:Test.kt

后续计划

暂无

About

PCM文件调整采样率

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published