2010-08-13 37 views
4

我有一个iPhone VOIP应用程序,可以处理使用BSD套接字设置的多多发送和接收(即电话会议)。我希望它能够响应传入的请求,当它在后台,但从我能理解的iOS 4文档我只能在NSStream对象(或CFRead/WriteStream)上通过将属性设置为NSStreamNetworkServiceTypeVoIP 。这是一个问题,因为我的系统是基于UDP BSD套接字的应用程序。一切都通过一个UDP套接字接收和发送。iOS 4 VOIP应用程序在后台响应

我是否需要重新编写音频发送/接收内核来处理NSStreams,或者有没有办法让iOS 4以类似于NSStream的方式处理我的BSD套接字?我认为这可能是一个问题,因为NSStream是基于事件的。

是否有可能检测到应用程序何时进入后台并构建临时NSStream对象,该对象将通过相关处理传递数据并继续正常运行?甚至有可能创建一个UDP NSStream?

任何想法?

回答

5

您可以使用CFSocketCreateWithNative()从文件描述符创建一个套接字,然后使用CFStreamCreatePairWithSocket()创建一对流。它可以让你在UDP套接字上使用它们。如果流不读取数据,除非您询问,否则您可能无法直接使用FD。

虽然祝你好运!

+0

好吧它似乎工作。事实证明,我不能在后台自动启动录音流,但当数据到达UDP端口时,它可以让我控制(这非常值得了解!) – Goz 2010-08-17 09:49:10

相关问题