Воспроизведение аудиоустройства iOS с постоянным шумом - PullRequest
1 голос
/ 08 декабря 2011

Я использую аудиоустройство для воспроизведения аудио. Я скачал тон-генератор с http://cocoawithlove.com/2010/10/ios-tone-generator-introduction-to.html и попытался поиграть с ним. По какой-то причине мне нужно использовать Ulaw вместо линейного PCM. Вот моя настройка аудиоформата:

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;

Когда я запускаю пример кода, я получаю постоянный шум. Кто-нибудь может помочь в этом вопросе? Большое спасибо.

Ответы [ 2 ]

1 голос
/ 14 февраля 2012

Вы можете использовать только формат linearPCM, используя Аудиоустройства. Даже kAudioUnitType_FormatConverter обеспечивает преобразование между линейными форматами линейных ПКМ (с различной частотой дискретизации, bytesPerPacket и т. Д.). Для конвертирования из сжатого формата вы должны использовать AudioConverter.

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

0 голосов
/ 20 декабря 2012

Если вы хотите использовать другой кодек, отличный от Linear PCM, вам следует избегать Audio Units, поскольку они поддерживают только Linear PCM.

Однако вы можете использовать Audio Queues, они поддерживают ULaw, ALaw,среди других.Если задержка не является проблемой, используйте аудио-очереди.

...