0

Я работаю над приложением, которое включает в себя запись звука на одном устройстве и воспроизведение его на другом устройстве, подключенном к сокетному соединению.AudioFileStreamParseBytes возвращает «pty?» on streamed, записанные данные

Я использую Audioqueues для записи данных на одно одноранговое устройство и потоковой передачи этих данных OTA, как в примере SpeakHere.

Я пытаюсь воспроизвести эти данные на принимающем устройстве с помощью AudioFileStream и AudioQueue на другом конце, чтобы воспроизвести его, как в примере AudioStreamer Мэтта Галлахера.

Вызов AudioFileStreamParseBytes возвращает «pty?» ошибка. Вследствие этого ни один из обратных вызовов, связанных с этим вызовом (для свойств и звукового пакета), не вызван.

Существует много примеров кода для потоковой передачи mp3 и HTTP-потоков и т. Д. В Интернете. Однако, если я хочу передать аудио, записанные с помощью AudioQueue, есть ли что-то, что я могу потерять? Возможно, что-то связано с свойствами AudioQueue?

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

Небольшой кусок кода:

void AQPlayer::StreamDataAvailable(MediaPacket* packet) 
{ 
    OSStatus err = 0; 
    err = AudioFileStreamParseBytes(mAudioFileStream, packet->msizeInBytes, packet->mVoiceData, 0); 
    if (err) 
    { 
     NSLog(@"AudioFileStreamParseBytes Error"); 
    } 
} 

Кроме того, я уже проверил, что пакетной> mVoiceData имеет около 44Kbytes данных (хотя и не уверен, что это разумные данные) и пакетной> msizeInBytes отражает номер.

Любая помощь приветствуется. Спасибо!

+0

kAudioFileUnsupportedPropertyError \t 'pty?' \t Объект не поддерживается. Доступен в iOS 2.0 и более поздних версиях. –

+0

Спасибо, но я смог выяснить, что такое «pty?» означает, но то, что мне нужно знать, - это исправление. Какая собственность? Откуда это? Не знаю ни о каком из них. – dagnytaggart

+0

Вы можете получить ключ от того, где сигнализируется ошибка, если есть понятная трассировка. –

ответ

0

Похоже, что AudioFileStreams не поддерживают формат LPCM. Похоже, это причина, по которой я получаю эту ошибку. Я предполагаю, что LPCM является необработанным и не нуждается в анализе.

Также выясняется, что в этом случае нет необходимости использовать AudioFileStreams. Просто использовать AudioQueues было достаточно.

Я смог записывать, передавать и отправлять данные только с помощью AudioQueues.

Смежные вопросы