IOS - 解码PCM字节数组(IOS - Decode PCM byte array)

2019-10-16 23:17发布

林停留在一个问题上我的目标C应用程序。

我在读从serveur(插槽C#)一个字节数组,谁给我一个PCM编码的声音,和我目前正在寻找一个解码对于我这个字节数组(NSData的),并发挥它的样本代码。

有谁知道一个解决方案吗? 或者我如何可以读取U型规律音频?

非常感谢 ! :d

Answer 1:

此链接有大约μ定律编码和解码的信息:

http://dystopiancode.blogspot.com.es/2012/02/pcm-law-and-u-law-companding-algorithms.html

#define MULAW_BIAS 33
/*
 * Description:
 *  Decodes an 8-bit unsigned integer using the mu-Law.
 * Parameters:
 *  number - the number who will be decoded
 * Returns:
 *  The decoded number
 */
int16_t MuLaw_Decode(int8_t number)
{
 uint8_t sign = 0, position = 0;
 int16_t decoded = 0;
 number=~number;
 if(number&0x80)
 {
  number&=~(1<<7);
  sign = -1;
 }
 position = ((number & 0xF0) >>4) + 5;
 decoded = ((1<<position)|((number&0x0F)<<(position-4))|(1<<(position-5)))
            - MULAW_BIAS;
 return (sign==0)?(decoded):(-(decoded));
}

当你有未压缩的音频,你应该能够使用音频队列API来播放它。

祝好运!



文章来源: IOS - Decode PCM byte array