AudioQueue и iOS4? - PullRequest
       22

AudioQueue и iOS4?

0 голосов
/ 27 июня 2010

Следующий код работал для меня в прошлом.Я пытаюсь это сейчас с iOS4 без удачи.Он работает в симуляторе, но я ничего не слышу о самом устройстве.Сначала я пытаюсь записать несколько сэмплов в переменную NSMutableData, а затем пытаюсь воспроизвести их.

Я пробовал сэмпл SpeakHere от Apple - который работает (но он воспроизводит из файла - непамять).

Есть идеи, что мне не хватает?

AudioSessionInitialize(NULL, NULL, NULL, NULL);
UInt32 sessionCategory = kAudioSessionCategory_PlayAndRecord; 
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);
AudioSessionSetActive(true);

AudioQueueNewOutput(&m_format,&OutputCallback,self,CFRunLoopGetCurrent(), kCFRunLoopCommonModes,0,&m_device);   
AudioQueueBufferRef nBuffer=NULL;
AudioQueueAllocateBuffer(m_device,[data length],&nBuffer);
nBuffer->mAudioDataByteSize=[data length];
[data getBytes:(nBuffer->mAudioData) length:(nBuffer->mAudioDataByteSize)];
AudioQueueEnqueueBuffer(m_device,nBuffer,0,NULL);
AudioQueueStart(m_device,NULL);

1 Ответ

0 голосов
/ 25 июля 2010

Основные вещи, которые я могу предложить:

(1) убедитесь, что устройство не отключено и громкость увеличена

(2) Проверьте коды результатов. Например:

OSStatus errorCode = AudioQueueNewOutput (...) ;

if ( errorCode ) NSLog ( @"Error: %u" , errorCode ) ;

Что-то еще, что могло бы дать вам немного больше информации:

Пока он должен работать, попробуйте отрегулировать громкость. Если он регулирует громкость звонка, AudioQueue не воспроизводится и / или не настроен правильно. Если он регулирует громкость воспроизведения, то AudioQueue, вероятно, не получает данные, когда запрашивает их.

Для справки, у меня есть приложение, которое использует AudioQueue на iOS 4 на всех устройствах, поэтому я знаю, что оно работает, и это не ошибка.

Продолжайте в том же духе: время от времени AudioQueue может очень и очень раздражать.

...