我有一个关于avaudioplayer播放器的问题。我有一个播放音乐的方法:
-(void)playBgMusic {
NSString *path = [[NSBundle mainBundle] pathForResource:@"bgmusic" ofType:@"aif"];
theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
theAudio.delegate = self;
[theAudio play]; }它在viewDidLoad方法中调用:
- (void)viewDidLoad {
[super viewDidLoad];
[self playBgMusic]; }现在的问题是:当我切换到另一个视图时,音乐会继续播放,但当我再次返回时,音乐会再次开始并重叠。
我该如何解决这个问题?
发布于 2011-04-07 01:39:21
为什么在-viewDidLoad中开始你的音乐?将其放入控制器的初始值设定项中。如果您只是在XIB中创建它,并且还没有覆盖初始化器,那么实现-initWithCoder:,如下所示:
- (id)initWithCoder:(NSCoder *)coder
{
self = [super initWithCoder:coder];
if(self)
{
[self playBgMusic];
}
return self;
}..。或者,如果您手动分配/初始化它,请执行相同的操作,但使用-init (或您设置的任何自定义初始化器)。这样,音乐播放器将只在您第一次创建视图控制器时启动,从它的声音来看,您可能只执行了一次。
https://stackoverflow.com/questions/5570551
复制相似问题