0
を与えている、私はこれを行うときNSLog(@"%ld",inNumberFrames);
は私に常に512機能は、オーディオユニットのたびにコールバック関数が呼び出されている不安定なバッファリストに
を与えるので、奇妙であるサンプルの別の番号を取得コールバックremoteIO:
をNSLog(@"%li",strlen((const char *)(&bufferList)->mBuffers[0].mData));
私は、次のような数字を取得:奇妙である50 20 19 160 200 1 ...
を。 各コールバック、私は512サンプルのフルバッファを取得する必要がありますか?
私はsin 2khzを入力すると約600のゼロクロスを得て、何も置かなければi g etは同じなので、必要なサンプルをすべて得ることはできません。これで任意のヘルプは日私を保存します
static OSStatus recordingCallback(void *inRefCon,
AudioUnitRenderActionFlags *ioActionFlags,
const AudioTimeStamp *inTimeStamp,
UInt32 inBusNumber,
UInt32 inNumberFrames,
AudioBufferList *ioData)
{
AudioBuffer buffer;
buffer.mNumberChannels = 1;
buffer.mDataByteSize = inNumberFrames * 2;
//NSLog(@"%ld",inNumberFrames);
buffer.mData = malloc(inNumberFrames * 2);
// Put buffer in a AudioBufferList
AudioBufferList bufferList;
bufferList.mNumberBuffers = 1;
bufferList.mBuffers[0] = buffer;
OSStatus status;
status = AudioUnitRender(audioUnit,
ioActionFlags,
inTimeStamp,
inBusNumber,
inNumberFrames,
&bufferList);
//checkStatus(status);
NSLog(@"%li",strlen((const char *)(&bufferList)->mBuffers[0].mData));
int16_t *q = (int16_t *)(&bufferList)->mBuffers[0].mData;
for(int i=0; i < strlen((const char *)(&bufferList)->mBuffers[0].mData); i++)
{
....
:私は、データを取得するための
!ありがとう。
バッファで 'strlen'を使用しているのはなぜですか? –
どうすればよいですか?この行のデータを取得する手助けはできますか? – Curnelious
バッファは固定サイズ(inNumberFrames)なので、それに応じて反復処理します。 –