android - 如何以编程方式将 44100 立体声转换为 11025 单声道?

标签 android c++ audio ffmpeg pcm

我正在使用 ffmpeg (c++) 将各种音频文件解码为 44100 立体声或单声道(根据来源)。我必须保持这样,因为我也玩它们。 同时,我还需要这些的 11025 单声道版本。所以我试图找到一种非常快速/简单的方法来将 44100 立体声 PCM 转换为 11025 单声道而不使用 ffmpeg 以节省 cpu。

这在 java (android) 或 c++ (ndk) 中可能吗?

我已经在同一个项目中使用 java 和 c++。

最佳答案

逐个样本的平均对于立体声到单声道的转换是正确的,但对于采样率转换,为什么不使用像 libsamplerate 这样的库?如果连那个都太重了,平均确实很快,但这不是正确的方法。是否可以接受取决于您的应用程序。我对这篇 SO 帖子的回答中描述了另一种方法:

How to convert pcm samples in byte array as floating point numbers in the range -1.0 to 1.0 and back?

关于android - 如何以编程方式将 44100 立体声转换为 11025 单声道?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17785499/

相关文章:

python - 程序运行时,如果按Enter键如何停止音乐?

Android长按菜单按钮

java - 如何在 .java 代码中启用禁用的(在 xml 中)ListPreference 对象?

c++ - 使用for循环从文件C++的中间读取输入

c++ - OPENCV - 直接使用指针访问过滤图像并使用内核矩阵过滤

java - Java音频在定制的Sound类中不断crack啪作响

angularjs - 如何在 angularjs 中播放声音

java - 无法使用 getApplicationInfo 从名称获取子包

android - ViewModel 中的 Kotlin 单例 getter

c++ - 编译器可以用直接初始化代替复制初始化吗?