Bir iPhone'dan diğerine ses aktarmak istiyorum. TCP kullanarak iki iPhone arasında bağlantı kurdum ve iPhone'da ses kaydetmeyi ve Ses Kuyruğu Servislerini kullanarak çalmayı başardım. İki iPhone arasında da veri göndermeyi başardım. Bunu NSData paketleri göndererek yapıyorum.Ses Kuyruğu Servisleri kullanılarak kaydedilen ses verileri
Bir sonraki adımım ses verilerini diğer iPhone'a kaydedilmekte olduğu gibi göndermek. Bunu AudioInputCallback
'da yapmam gerektiğine inanıyorum. Benim AudioQueueBufferRef
inBuffer
denir ve ben NSData için inBuffer->mAudioData
dönüştürmek ve daha sonra NSData diğer aygıta göndermek ve daha sonra onu açmak istiyorum.
Bunu yapmanın yolu olup olmadığını ve inBuffer->mAudioData
NSData'ya nasıl dönüştürdüğümü bilen var mı? Diğer yaklaşımlar da kabul edilir.
Bu ben verileri "yakala" ve diğer iPhone göndermelidir inandığınız benim geri arama yöntemidir:
void AudioInputCallback(void *inUserData, AudioQueueRef inAQ, AudioQueueBufferRef inBuffer, const AudioTimeStamp *inStartTime, UInt32 inNumberPacketDescriptions, const AudioStreamPacketDescription *inPacketDescs)
{
RecordState *recordState = (RecordState *)inUserData;
if(!recordState->recording)
return;
OSStatus status = AudioFileWritePackets(recordState->audioFile,
false,
inBuffer->mAudioDataByteSize,
inPacketDescs,
recordState->currentPacket,
&inNumberPacketDescriptions,
inBuffer->mAudioData);
if(status == 0)
{
recordState->currentPacket += inNumberPacketDescriptions;
}
AudioQueueEnqueueBuffer(recordState->queue, inBuffer, 0, NULL);
}
Cevabınız için teşekkür ederiz. Neden başka bir sıra kullanmam gerektiğinden emin değilim. Bunu detaylandırır mısın? Ve verileri NSData'ya dönüştürmek için örnek kodunuz yok mu? – simonbs
http://stackoverflow.com/a/8486682/486845 adresindeki hotpaw2 kaynağından yanıt bölümüne bakın. – simonbs