2

请多多包涵,因为我对音频编解码器的理解有限。我有来自 IPCAM 的音频源(通过 htto//... CGI 接口)。我正在尝试编写几个客户端程序来在 Windows、MAC 以及 Android 手机上播放此音频源。音频以 G711 (PCM ulaw) 编码。

我是否需要将 PCM 音频数据解码为原始音频数据,然后才能将其传递给音频引擎进行播放?如果是这样,是否有一些关于如何解码的示例代码?我很困惑,因为我相信 PCM 已经是 RAW。例如,我可以直接将它提供给 Android 上的音频引擎吗?

提前非常感谢

4

2 回答 2

6

这取决于您用于播放声音的 API,但大多数需要线性 PCM 并且您有 µ-law PCM,因此除非您的 API 支持 µ-law 播放,否则您需要将 µ-law 样本值转换为线性。

使用 G.711,压缩的 µ-law 样本为 8 位,这些将被转换为 14 位线性值,您将作为每个样本 2 个字节存储在缓冲区中。在G.711 Wikipedia 页面上有 µ-law 编码的简要说明。

于 2010-07-15T05:54:20.430 回答
2

您可能会发现这很有用:

C中的u-Law压扩算法

于 2012-02-04T03:49:23.863 回答