iOS - 如何在更改视图时停止背景音乐

时间:2011-04-23 14:55:38

标签: iphone objective-c xcode ios audio

更改观看时如何停止背景音乐?我没有线索。如果我按下一个按钮将我带到一个新视图,则会有新的背景音乐。但旧的背景音乐(无限循环)继续前进。请帮忙!还请提供一些代码,这是我的:

- (void)viewDidLoad {
    NSString *path = [[NSBundle mainBundle] pathForResource:@"MathMusic2" ofType:@"wav"];
    AVAudioPlayer* theAudio= [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
    theAudio.delegate = self;
    [theAudio play];
    theAudio.numberOfLoops = -1;

    [super viewDidLoad];
}

我只需要知道如何让新视图中的背景音乐停止播放。当我按下新视图中的后退按钮时,反之亦然

2 个答案:

答案 0 :(得分:4)

AVAudioPlayer *theAudio创建一个属性,以便您可以从班级中的任何位置访问audioPlayer。

viewController的头文件

... 
AVAudioPlayer *theAudio;
...
@property (nonatomic, retain) AVAudioPlayer *theAudio;

viewController的实现文件

...
@synthesize theAudio;
...

- (void)viewDidLoad {
    NSString *path = [[NSBundle mainBundle] pathForResource:@"MathMusic2" ofType:@"wav"];
    self.theAudio= [[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL]] autorelease];
    theAudio.delegate = self;
    [theAudio play];
    theAudio.numberOfLoops = -1;

    [super viewDidLoad];
}

如果调用viewWillDisappear,则可以使用

停止音频
- (void)viewWillDisappear
{
    [theAudio stop];
}

答案 1 :(得分:-1)

它在这里给出了错误:     “theAudio.delegate = self;”就像分配给id ......

它的黄色反正.. 还是当我改变观点并去另一堂课音乐而不停止......