我正在使用支持ARC的iOS 5。当点击视图时,我正在播放与特定视图相关联的录制内容。当用户更改视图时,播放停止。我使用NSNotification来调用-stopPlayback方法,该方法工作正常。问题是,当用户返回原始视图并点击它时,它会继续录制停止的位置。
禁用ARC后,我可以使用以下代码:
-stopPlayback
{
if([audioPlayer isPlaying])
{
[audioPlayer stop];
[audioPlayer release];
audioPlayer = nil;
}
}
由于ARC不允许[audioPlayer release],我无法从头开始重置播放。我删除了[audioPlayer release]和audioPlayer = nil;因为ARC会处理它,结果是录制播放在上一次停止后停止的位置。我没有看到Apple提供有关如何在播放时从头重新开始录制的好示例或文档。最好的方法是什么?
答案 0 :(得分:0)
您仍然需要设置为nil
:
if([audioPlayer isPlaying])
{
[audioPlayer stop];
audioPlayer = nil;
}
答案 1 :(得分:0)
这是我提出的解决方案:
-stopPlayback{
if([audioPlayer isPlaying])
{
[audioPlayer stop];
audioPlayer.currentTime=0;
}
}
录音现在从一开始就重播,无论它何时停止。 我尝试使用[audioPlayer pause]而不是[audioPlayer stop],这导致播放在初始暂停后不再播放。当我添加'audioPlayer = nil时,发生了类似的事情; (虽然我没有记录确切的组合)。作为响应的一部分发布的相关问题确实使用currentTime = 0,但其余代码不符合我的需求。任何人都可以看到为什么这不起作用?任何进一步的评论赞赏