状态恢复iOS时播放声音

Posted

技术标签:

【中文标题】状态恢复iOS时播放声音【英文标题】:Sound playing during state restoration iOS 【发布时间】:2012-11-20 04:51:07 【问题描述】:

我有一个 ios 应用程序,它在第一次打开时会播放声音。我已将状态恢复代码添加到我的应用程序委托中,并在我的故事板中的视图控制器中设置恢复 ID。我的应用程序似乎恢复到正确的视图控制器,但随后跳回到第二个视图控制器并再次播放声音,即使它没有打开到启动声音的视图控制器。我尝试为声音添加计数,因此它只会播放一次,但似乎不起作用。如何让声音不再播放?谢谢各位。

编辑:我应该提到声音是通过我的初始视图控制器中的 AVPlayer 播放的。

***经过进一步检查,如果我绕过我的第一个视图控制器,一切正常。

然后我在我的第二个视图控制器中添加了一个计时器,并使用该计时器呈现了我的第一个视图控制器。在我的动画块中,我使用完成处理程序来关闭第一个视图控制器,然后一切似乎都正常了。现在唯一的问题是,当应用程序被杀死并重新打开时,它会再次显示第一个视图控制器,但至少当它现在关闭它时,它实际上是你离开的地方,而不是跳回第二个视图控制器并且只播放声音从第一个视图控制器。我可能会保持这种方式,因为它是一个有趣的小动画,并且只有在应用程序被杀死时才会播放,但我只是不明白它为什么这样做。我查看了我所有的连接、代码和 IB 设置,似乎没有任何东西能引起我的注意。有没有其他人在恢复方面遇到过类似的问题?

【问题讨论】:

【参考方案1】:

将该计数变量设为静态。 声明如下:

static int count = 0;
  if(count == 0) 
   //then play the sound here
   //insert code here
  
//the increment it here
count++;

【讨论】:

我试过你的想法,但没有奏效。谢谢你。我想我可能在柜台上走错了路。我认为这与状态恢复和我的代码中的其他内容有关。不过我很欣赏这种尝试。

以上是关于状态恢复iOS时播放声音的主要内容,如果未能解决你的问题,请参考以下文章

在静音模式下播放声音,应用程序终止状态

iOS - 仅带声音的推送通知

carplay在播放音乐时,为啥音乐声音突然变小。

在自定义键盘扩展中播放标准 iOS 键盘点击声音

EasyPlayer声音自动停止恢复,一键静音等功能

iOS - 在录制视频时播放音频/声音