AudioFileStreamParseBytes возвращает "pty?"на потоковых, записанных данных - PullRequest
0 голосов
/ 10 января 2012

Я работаю над приложением, которое включает запись звука на одном устройстве и воспроизведение его на другом устройстве, подключенном через сокетное соединение.

Я использую 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");
    }
} 

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

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

1 Ответ

0 голосов
/ 29 февраля 2012

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

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

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

...