我刚刚开始在实际的 iPhone 设备上测试这个非常简单的录音应用程序,它是通过 Monotouch 构建的。我遇到了一个问题,似乎是第一次使用AVAudioRecorder
andAVPlayer
对象后的重用,我想知道如何解决它。
基本概述
该应用程序由以下三个部分组成:
- 记录列表(TableViewController)
- 记录细节(ViewController)
- 新记录(视图控制器)
工作流程
创建录音时,用户将单击“录音列表”区域中的“添加”按钮,应用程序会推送新的录音视图控制器。
在 New Recording Controller 中,可以使用以下变量:
AVAudioRecorder recorder;
AVPlayer player;
每个都在使用之前初始化:
//Initialized during the ViewDidLoad event
recorder = AVAudioRecorder.Create(audioPath, audioSettings, out error);
和
//Initialized in the "Play" event
player = new AVPlayer(audioPath);
在 New Recording Controller 区域的初始加载中,这些工作中的每一项都按预期工作,但是任何进一步的尝试似乎都不起作用(没有音频播放)
详细信息区域还有一个播放部分,允许用户播放任何录音,但是,与新录音控制器非常相似,播放在那里也不起作用。
处理
它们都按如下方式处理(退出/离开视图时):
if(recorder != null)
{
recorder.Dispose();
recorder = null;
}
if(player != null)
{
player.Dispose();
player = null;
}
我还尝试删除任何可能使任何对象保持“活动”状态的观察者,希望能够解决问题并确保它们在每次显示新录制区域时都被实例化,但是在之后我仍然没有收到音频播放初始录制会话。
如有必要,我很乐意提供更多代码。(这是使用 MonoTouch 6.0.6)