sim*_*nbs 5 iphone audio recording audioqueueservices nsdata
我想将语音从一个iPhone传输到另一个iPhone.我已经使用TCP建立了两个iPhone之间的连接,我已经设法在iPhone上录制语音并使用音频队列服务播放它.我还设法在两个iPhone之间发送数据.我这样做是通过发送NSData包.
我的下一步是将音频数据发送到正在录制的其他iPhone.我相信我应该这样做AudioInputCallback.我AudioQueueBufferRef被调用inBuffer,似乎我想转换inBuffer->mAudioData为NSData,然后将NSData发送到另一个设备,然后解压缩它.
有谁知道这是否是这样做的方式以及如何将我转换inBuffer->mAudioData为NSData?其他方法也受到欢迎.
这是我的回调方法,我相信我应该"抓住"数据并将其发送到其他iPhone:
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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2614 次 |
| 最近记录: |