我正在寻找一种以编程方式将短裤数组保存为 PCM 数据的方法。我知道这应该是可行的,但我还没有找到在 Android 上执行此操作的非常简单的方法。
本质上,我正在获取电压数据,并且我想将其保存为 PCM 格式。我的函数看起来像这样:
public void audifySignal(short[] signal) {
// Create a WAV file from the incoming signal
}
任何建议都很棒,甚至是引用。似乎内置于 android 中的音频 API 更适合直接从麦克风录制,而不适合较低级别的信号处理类型工作(至少用于将原始数据保存到文件中)。我还想避免手动编写 PCM 文件头以及其他...
谢谢!
最佳答案
Sam,我不知道 Android 特定的库,但我会继续说:
原始 PCM 数据非常简单。它通常只是顺序数据。也许您需要了解 WAV 格式才能了解什么是 PCM 及其工作原理。
WAV 被广泛用作未压缩音频的容器。了解 WAV 文件如何包含数据将有助于了解原始数字音频的一般工作原理。
这个页面帮了我不少忙:
http://www.sonicspot.com/guide/wavefiles.html
有趣的是,您可以或多或少地向声卡发射任何数据,它就会播放。这对我们人类来说可能听起来很疯狂,因为声卡不关心它听起来是否乱码。
听起来是否悦耳取决于您是否提供了正确的样本量、声道数、频率和一些符合前者的 PCM 数据。
请注意,您无法从原始 PCM 数据本身“检测”样本大小、 channel 数或正确频率。您必须将此关键数据与 PCM 数据一起存储,以便其他软件可以让声卡知道如何处理您的 PCM 数据。
这就是 WAV 容器格式的用武之地。
还有其他格式,但 WAV 非常普遍,因此是一个很好的起点。
干杯 特里斯滕
关于android - 在 Android 中以编程方式写入 PCM WAV 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2555738/