Avaudioplayer如何停止从其他控制器播放对象

时间:2012-07-16 20:45:37

标签: ios avaudioplayer

我有firstViewControllerSecondViewController。在两个控制器中,我可以点击播放按钮,旋律将播放。因此,当我点击1个控制器中的播放按钮然后转到2个控制器并点击其他播放按钮时,2个旋律将一起播放。所以我的问题是当我点击第二个控制器中的播放按钮时,如何从第一个控制器停止第一个旋律。谢谢!

在firstViewController中viewdidload

NSString *soundPath = [[NSBundle mainBundle] pathForResource:@"first" ofType:@"wav"];
NSURL *soundURL_ = [NSURL fileURLWithPath:soundPath];
AVAudioPlayer *first = [[AVAudioPlayer alloc] initWithContentsOfURL:soundURL_ error:nil];
[first prepareToPlay];

secondViewcontroller相同但第二个而不是第一个

当我按下按钮时:

[first play]

1 个答案:

答案 0 :(得分:2)

您可以创建一个自定义对象实例,其中包含AVAudioPlayer和与播放器关联的方法,然后在两个视图中为该对象创建指针。

如果您想从AppDelegate中实例化AVAudioPlayer,则必须首先设置AVAudioPlayer并将其分配给AppDelegate的属性。

在View Controllers中,访问App Delegate的任何属性都很简单,只需写下:

AppNameAppDelegate *ad = (AppNameAppDelegate *)[[UIApplication sharedApplication] delegate];

接下来是:

localAVAudioPlayerInstance = ad.audioPlayer;

如果您需要更详细的说明,请与我们联系。