从应用程序的任何位置停止AVAudioPlayer

时间:2009-07-17 16:37:34

标签: objective-c

我有一个AVAudioPlayer,我们称之为player1,它在特定的UIViewController中启动,我们称之为myController1。我将numberOfLoops设置为-1,因此音频无限循环。我设置了一个协议,以便myController1充当AVAudioPlayer的委托,这样我就可以触发audioPlayerDidFinishPlaying。我还编写了一个例程来阻止myController1中的玩家。所有这一切都有效。

假设我有其他UIViewControllers,比如myController2和myController3。我已经梳理了论坛和Apple文档,但我无法找到一种方法来阻止这些附加控制器中的播放器。可能吗? (我不愿意相信它不是。)如果是这样,我可以得到一些提示吗?

我已经七十岁了,所以当谈到学习新事物时,我就像一只老狗。我为C中的工业过程控制编程了8位和16位芯片三十年。面向对象编程是一个全新的蜡球,但我正在学习球。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用Singleton来提供对AVAudioPlayer实例的访问。这将涉及创建一个具有静态成员(AVAudioPlayer)的类和一个访问静态成员的类方法。 myController2和myController3可以像这样调用类方法:

[[MyPlayer player] stop];