1

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

在第一个ViewControllerviewdidload

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]
4

1 回答 1

2

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

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

在 View Controller 中,访问 App Delegate 的任何属性都很容易,只需编写:

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

其次是:

localAVAudioPlayerInstance = ad.audioPlayer;

如果您需要更详细的说明,请告诉我。

于 2012-07-17T00:19:37.830 回答