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。ただし、これはフォアグラウンドでは適切に機能します。悲しいことに、これはアプリケーションの必要条件です (バックグラウンドで実行するため)。

UIBackgroundModelocationVOIP、およびaudioに設定しました。

以前にこの問題に遭遇した人はいますか?

4

1 に答える 1

2

アプリケーションがバックグラウンドにある間は、オーディオ デバイスを開くことはできません。

コールバックで:

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

UILocalNotification をユーザーに提示して、着信があることを通知し、ユーザーが通知を「開く」(したがって、アプリケーションをフォアグラウンドに移動する) と、次のように呼び出す必要があります。

[_connection accept];
于 2012-08-30T21:48:08.070 に答える