Den*_*nis 5 audio-recording background-foreground ios
我根据Apple的SpeakHere音频应用示例编写了一个小型录音机/播放器,可以在我的iPad上使用.当用户要求显示录像机时,UIView将打开并显示录制/停止按钮和仪表.
当我从头开始加载应用程序时,我可以记录,停止记录,再次记录我想要的任何时间.停止录制后,我将应用程序放在后台,例如阅读我的邮件.再次将录音机置于前台时,无法录制任何声音.我在日志中收到错误消息,仪表不显示任何数据,也没有创建声音文件.我注意到与iPhone和iPad上的SpeakHere示例应用程序相同的行为.唯一的解决方案是退出并重新启动应用程序.
为了解决这个问题,我决定在用户完成录像机的使用后取消分配视图控制器.我为记录视图控制器禁用了ARC,并编写了dealloc方法.在这个控制器的viewDidDisappear中,我进行了[self dealloc]调用.
但程序崩溃,发送[RecorderViewController childViewControllersCount]:消息发送到解除分配的实例.我想这样的自我dealloc是不允许的......
我需要找到一个解决方案,或者......
找到一种在应用程序进入后台时正确管理音频会话的方法(因为录制停止,我不明白为什么会出现这样的问题).
或者在视图关闭时正确释放录像机视图控制器,以确保在视图必须出现的任何时候,它都会从控制器的XIB文件中再次加载.
[更新]在查看aurioTouch应用程序的代码(Apple dev网站的另一个音频示例)后,我在我的应用程序委托中获得了以下代码:
- (void)applicationDidBecomeActive:(UIApplication *)application
{
AudioSessionSetActive(true);
}
Run Code Online (Sandbox Code Playgroud)
它可以在我的应用程序或SpeakHere应用程序中运行...花了很多时间找到一个解决方法,这是一行代码!
| 归档时间: |
|
| 查看次数: |
956 次 |
| 最近记录: |