2011-12-08 1 views
1

オーディオ再生にオーディオユニットを使用しています。私はhttp://cocoawithlove.com/2010/10/ios-tone-generator-introduction-to.htmlから音源をダウンロードし、それを試してみてください。何らかの理由で、リニアPCMの代わりにulawを使用する必要があります。ここで私のオーディオフォーマットの設定です:iOSオーディオユニットで一定のノイズが再生されます

AudioStreamBasicDescription streamFormat; 
streamFormat.mSampleRate = 8000; 
streamFormat.mFormatID = kAudioFormatULaw; 
streamFormat.mFormatFlags = 0; 
streamFormat.mFramesPerPacket = 1; 
streamFormat.mBytesPerFrame = 2; 
streamFormat.mBytesPerPacket = streamFormat.mBytesPerFrame; 
streamFormat.mChannelsPerFrame = 1; 
streamFormat.mBitsPerChannel = 16; 

私はサンプルコードを実行すると、私は一定のノイズを取得します。誰でもこの問題を助けることができますか?どうもありがとう。

答えて

1

オーディオユニットを使用して線形PCM形式のみを使用できます。 kAudioUnitType_FormatConverterでさえ、linearPCM形式(異なるサンプルレート、bytesPerPacketなど)間の変換を提供します。圧縮形式から変換するには、AudioConverterを使用する必要があります。

https://developer.apple.com/library/ios/#documentation/MusicAudio/Reference/AudioConverterServicesReference/Reference/reference.html

0

あなたはリニアPCMとは異なる別のコーデックを使用したい場合、彼らは唯一のリニアPCMをサポートしているので、あなたは、オーディオユニットを避ける必要があります。

ただし、オーディオキューを使用すると、ULaw、ALawなどをサポートします。遅延が問題にならない場合は、オーディオキューを使用してください。

関連する問題