Как читать данные из AudioQueueBufferRef-> mAudioData - PullRequest
3 голосов
/ 29 апреля 2011

Я пытаюсь прочитать аудио данные из AudioQueueBufferRef-> mAudioData.

Что я хочу сделать, это распечатать буфер, который я прочитал из микрофона / файла, на консоль.

Я не знаю, в каком формате представлены аудиоданные. Я пытался напечатать его как long / int / float, но, похоже, ничего не дает мне правильных данных.

Мой код очень похож на SpeakHere образец, предоставленный Apple.

Я пытаюсь напечатать буфер следующим образом: printf ("% d", ((int *) inCompleteAQBuffer-> mAudioData) [i]);

я что-то не так делаю ?? Как правильно читать данные из mAudioData ??

Подробности моего потока:

        streamDescription.mFormatID = kAudioFormatLinearPCM;

    // if we want pcm, default to signed 16-bit little-endian
    streamDescription.mFormatFlags = kLinearPCMFormatFlagIsSignedInteger | kLinearPCMFormatFlagIsPacked;
    streamDescription.mBitsPerChannel = 8 * sizeof (int);
    streamDescription.mBytesPerPacket = streamDescription.mBytesPerFrame = (streamDescription.mBitsPerChannel / 8) * streamDescription.mChannelsPerFrame;
    streamDescription.mFramesPerPacket = 1;

1 Ответ

0 голосов
/ 29 апреля 2011

Пример приложения Apple SpeakHere:

mRecordFormat.mBitsPerChannel = 16;

У вас есть что-то другое. Тип C short обычно не совпадает с типом C int в 32-разрядных архитектурах RISC, таких как современные устройства iOS.

...