Speakhere在接到电话后不会记录

时间:2012-02-09 02:12:03

标签: iphone audio

我正在研究一个需要记录和分析声音的项目,当我在这里使用时,每个想法都可以。 但当有人打电话给我的电话时,记录停止,当应用程序返回时,它再也没有记录  我尝试通过记录重启记录器,但是我得到了这个错误:
     错误:无法获得输入通道数('!cat')
     错误:无法启用计量(-50)
     错误:计量失败
我也尝试通过调用StartRecord(....)重新启动,但没有什么不同。所以任何人都可以帮助我

if (inInterruptionState == kAudioSessionEndInterruption)

    THIS->recorder->StartRecord(CFSTR("recordedFile.caf"));

3 个答案:

答案 0 :(得分:1)

应用程序必须停止录制在任何音频会话中断侦听器开始中断回调,如果它想再次开始录制。否则,可能需要用户退出并重新启动。

答案 1 :(得分:0)

我一直遇到SpeakHere的同样问题,并通过(小时和小时)试验和错误找到了这个解决方案。试试这个:摆脱对playbackWasInterrupted(下面注释掉)的引用,但留在其他与玩家相关的指令中。不知怎的,这重新启用了录音机!如果有人能解释为什么会这样,我很想知道!

在void interruptionListener下,更改

else if ((inInterruptionState == kAudioSessionEndInterruption)&& THIS->playbackWasInterrupted))

else if (inInterruptionState == kAudioSessionEndInterruption)

         //&& THIS->playbackWasInterrupted)

然后注释掉或删除下面的“playbackWasInterrupted”行:

{
    // we were playing back when we were interrupted, so reset and resume now
    THIS->player->StartQueue(true);
    [[NSNotificationCenter defaultCenter] postNotificationName:@"playbackQueueResumed" object:THIS];

// THIS-> playbackWasInterrupted = NO;

}

答案 2 :(得分:0)

仅从内存中 - 当返回到前台时(在相应的通知处理程序中),您需要调用

AudioSessionSetActive (true)

或类似的东西。正如我所说,我只是在相关的问题上阅读 - 没有任何保证。 祝你好运,nobi