1

在我们的系统中,我们有一个 Rails 服务器向 iphone 设备和一个固定电话发起电话会议。当我们的 iphone 应用程序在后台接收来电时,我们会看到一系列有关 AURemoteIO 初始化失败的错误消息。错误如下:

<0x4336000> AURemoteIO::Initialize failed: -12985 (enable 3, outf< 1 ch,  16000 Hz, Int16> inf< 1 ch,  16000 Hz, Int16>)
<0x4336000> AURemoteIO::Initialize failed: -12985 (enable 3, outf< 1 ch,  44100 Hz, Int16> inf< 1 ch,  44100 Hz, Int16>)
<0x4336000> AURemoteIO::Initialize failed: -12985 (enable 3, outf< 1 ch,  48000 Hz, Int16> inf< 1 ch,  48000 Hz, Int16>)
<0x4336000> AURemoteIO::Initialize failed: -12985 (enable 3, outf< 1 ch,  32000 Hz, Int16> inf< 1 ch,  32000 Hz, Int16>)
<0x4336000> AURemoteIO::Initialize failed: -12985 (enable 3, outf< 1 ch,  16000 Hz, Int16> inf< 1 ch,  16000 Hz, Int16>)
<0x4336000> AURemoteIO::Initialize failed: -12985 (enable 3, outf< 1 ch,   8000 Hz, Int16> inf< 1 ch,   8000 Hz, Int16>)

从我们在日志消息中可以看出,这发生在 didReceiveIncomingConnection 回调之后或期间的某个时间点。这是该函数的代码:

-(void)device:(TCDevice*)device didReceiveIncomingConnection:(TCConnection*)connection{
    if ( _connection ){
        [self disconnect];
    }
    _connection = [connection retain];
    [_connection accept];
}

不幸的是,我们从来没有达到这个connectionDidConnect功能。但是,这确实可以在前台正常工作。可悲的是,这是应用程序的必要要求(在后台运行)。

我们将UIBackgroundMode设置为locationVOIPaudio

有没有人遇到过这个问题?

4

1 回答 1

2

当应用程序在后台时,您无法打开音频设备。

回调中:

-(void)device:(TCDevice*)device didReceiveIncomingConnection:(TCConnection*)connection

呼叫您应该向用户显示 UILocalNotification 告诉他们有来电,然后一旦用户“打开”通知(从而将应用程序带到前台),您应该调用:

[_connection accept];
于 2012-08-30T21:48:08.070 回答