0

하나의 장치에 오디오를 녹음하고 소켓 연결로 연결된 다른 장치에서 오디오를 재생하는 응용 프로그램을 만들고 있습니다.AudioFileStreamParseBytes가 "pty?"를 반환합니다. on streamed, recorded data

오디오 큐를 사용하여 하나의 피어 장치에 데이터를 기록하고 SpeakHere 예제 에서처럼 해당 데이터를 스트리밍합니다.

Matt Gallagher의 AudioStreamer 예제에서와 같이 다른 쪽 끝에서 AudioFileStream 및 AudioQueue를 사용하여 수신 장치에서 해당 데이터를 다시 재생하려고합니다.

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 만 사용하여 데이터를 녹음, 전송 및 전송할 수있었습니다.