2011-12-09 18 views
5

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 AudioQueueBufferRefinBuffer 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); 
} 

cevap

2

Ses verilerini kaydetme düşünebilirsiniz (senin örneğin ses gösterir örnek işaretçi ve bayt sayısı) sesli geri aramadan başka bir sıraya veya FIFO'ya, daha sonra ayrı bir ağa sahip olmanın ses baytlarından NSData oluşturup göndermesini sağlar.

+0

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

+0

http://stackoverflow.com/a/8486682/486845 adresindeki hotpaw2 kaynağından yanıt bölümüne bakın. – simonbs

İlgili konular