我有一个IBaction,一旦用户按下IBaction播放声音。用户可以通过按下按钮来打开和关闭声音。按下按钮一次打开声音,再次按下它会关闭声音。 它在一个视图控制器中完美运行。 不过这是我的问题。我有2个视图,一旦用户播放声音并想要转到另一个视图,声音仍然在另一个视图上播放一次,但如果他们想要停止声音,他们将不得不返回到包含声音,但问题是创建一个新的音频会话意味着现有的声音无法关闭。 有谁知道怎么做
以下是代码:
- (IBAction)twoSound:(id)sender; {
if (ButtonAlReadyClicked == 1)
{
ButtonAlReadyClicked = 2;
[sender setBackgroundImage:[UIImage imageNamed:@"z2.png"] forState:UIControlStateNormal];
}
else if (ButtonAlReadyClicked == 2)
{
ButtonAlReadyClicked = 1;
[sender setBackgroundImage:[UIImage imageNamed:@"z1.png"] forState:UIControlStateNormal];
}
if (twoAudio && twoAudio.playing) {
[twoAudio stop];
[twoAudio release];
twoAudio = nil;
return;
}
NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"mp3"];
if (twoAudio) [twoAudio release];
NSError *error = nil;
twoAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:&error];
if (error)
NSLog(@"%@",[error localizedDescription]);
twoAudio.numberOfLoops = -1;
twoAudio.delegate = self;
[twoAudio play];
}
-(IBAction)goMain:(id)sender; {
[self dismissModalViewControllerAnimated:YES];
}
答案 0 :(得分:0)
我会创建一个单独的类来存储和跟踪您的音频。向该类添加单例和方法以切换声音。这样,它只是一个管理整个应用程序可访问的音乐的类实例。