1

私の目的のCアプリの問題に固執しています。

PCM エンコードされたサウンドを送信するサーバー (ソケット c#) からバイト配列を読み取っています。現在、このバイト配列 (NSData) をデコードして再生するサンプル コードを探しています。

誰かが解決策を知っていますか? または、u-Law 音声をどのように読むことができますか?

どうもありがとう !:D

4

1 に答える 1

2

このリンクには、mu-law のエンコードとデコードに関する情報があります。

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));
}

圧縮されていないオーディオがある場合は、Audio Queue API を使用して再生できるはずです。

幸運を!

于 2012-07-10T15:43:58.817 に答える