在不同的类中停止AVAudioplayer

时间:2011-08-28 08:11:37

标签: iphone class avaudioplayer

我在另一个班级的某个班级停止声音时遇到了麻烦。我在ViewDidLoad中播放声音,然后我有应用程序MainView的主类,我想停止ViewDIdLoad的声音。我搜索论坛并没有找到解决方案。你请求帮助我?

VievDidLoad位于gdziedotykViewController.m

 NSString *path = [[NSBundle mainBundle] pathForResource:@"farmaglownaloop" ofType:@"mp3"];
startdzwiek = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
startdzwiek.numberOfLoops = -1;
[startdzwiek play];

- (void)stopping{
[startdzwiek stop];

}

我希望在MainView.m类中停止声音

gdziedotykAppDelegate *dzwiekdelegat = (gdziedotykAppDelegate*)[[UIApplication sharedApplication] delegate];
      [dzwiekdelegat stopping];

1 个答案:

答案 0 :(得分:0)

您正在创建视图控制器的新实例。这将启动一个新的AVAudioPlayer并停止它。显然,这不起作用。

相反,你可以

  1. 通过将现有视图控制器设为MainView的代表,然后只需致电[self.delegate stop];,保留现有视图控制器播放声音的参考。
  2. 或者您可以在应用代理中管理声音播放器,只需通过
  3. 通知两个班级的代表

    [[[UIApplication sharedApplication] delegate] start];
     [[[UIApplication sharedApplication] delegate] stop];

    您必须在app delegate中实施startstop

相关问题