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