gpt4 book ai didi

objective-c - avaudioplayer问题

转载 作者:行者123 更新时间:2023-12-03 02:25:39 25 4
gpt4 key购买 nike

我有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]; }

现在的问题是:当我切换到另一个 View 时,音乐继续播放,但是当我再次返回时,音乐又开始播放并且重叠。

我怎么解决这个问题?

最佳答案

为什么以-viewDidLoad开头音乐?将其放在 Controller 的初始化程序中。如果您只是在XIB中创建它而尚未覆盖初始化程序,请实现-initWithCoder:,如下所示:

- (id)initWithCoder:(NSCoder *)coder
{
self = [super initWithCoder:coder];

if(self)
{
[self playBgMusic];
}

return self;
}

...或者如果您要手动分配/初始化它,请执行相同的操作,但是要使用 -init(或您设置的任何自定义初始化程序)。这样,音乐播放器将仅在您首次创建 View Controller 时启动,从它的声音来看,您可能只执行了一次。

关于objective-c - avaudioplayer问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5570551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com