Я использую пример кода Apple SpleakHere . в этом коде есть вызов под названием AQRecorder, это класс C. Я хочу отправить звуковые байты объекту target-c, который у меня есть. этот объект отправляет данные через UDP. Вот функция, в которой я пытаюсь выполнить функцию target-c внутри кода c.
void AQRecorder::MyInputBufferHandler( void * inUserData,
AudioQueueRef inAQ,
AudioQueueBufferRef inBuffer,
const AudioTimeStamp * inStartTime,
UInt32 inNumPackets,
const AudioStreamPacketDescription* inPacketDesc)
{
AQRecorder *aqr = (AQRecorder *)inUserData;
try {
if (inNumPackets > 0) {
// write packets to file
XThrowIfError(AudioFileWritePackets(aqr->mRecordFile, FALSE, inBuffer->mAudioDataByteSize,
inPacketDesc, aqr->mRecordPacket, &inNumPackets, inBuffer->mAudioData),
"AudioFileWritePackets failed");
aqr->mRecordPacket += inNumPackets;
NSData* data=[NSData dataWithBytes:inBuffer->mAudioData length:inBuffer->mAudioDataByteSize];
[(Udp*)udpp sendData:data];
}
// if we're not stopping, re-enqueue the buffe so that it gets filled again
if (aqr->IsRunning())
XThrowIfError(AudioQueueEnqueueBuffer(inAQ, inBuffer, 0, NULL), "AudioQueueEnqueueBuffer failed");
} catch (CAXException e) {
char buf[256];
fprintf(stderr, "Error: %s (%s)\n", e.mOperation, e.FormatError(buf));
}
}
хотя функции NSData работают нормально, я не могу добавить свой объект (Udp) в класс и, следовательно, не могу вызвать его функции. я попытался объявить объект Udp везде (внутри класса, вне класса, заголовочный файл .mm, как void * ...), но ничего не скомпилируется ...
хотя я не смог добавить объект для отправки данных ... вместо этого я использовал NSNptification для переноса данных из объекта c в объект target-c.
помогите пожалуйста
хотя я не смог добавить объект для отправки данных ... вместо этого я использовал NSNotification для переноса данных из объекта c в объект target-c