0

我想知道如何将背景音乐添加到我的应用程序中。到目前为止我的代码:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    NSURL* musicFile = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"Jaunty Gumption" ofType:@"mp3"]];
    AVAudioPlayer *backgroundMusic  = [[AVAudioPlayer alloc] initWithContentsOfURL:musicFile  error:nil];
    backgroundMusic.numberOfLoops = -1;
    [backgroundMusic play];
}

但是当我启动应用程序时,什么也没有发生,我不知道为什么。我已经包含了 AVFoundation 和 AudioToolbox 框架。任何帮助,将不胜感激。:) 谢谢马蒂斯

4

1 回答 1

4

ARC 正在破坏您的音频播放器,然后它才有机会输出音频。当音频播放器即将被销毁时,它会停止播放音频。将其分配给强属性而不是局部变量,如下所示:

@interface MyClass : UIViewController

@property(nonatomic, strong) AVAudioPlayer *backgroundMusic;

@end

@implementation MyClass

- (void)viewDidLoad {
    [super viewDidLoad];
    NSURL *musicFile = [[NSBundle mainBundle] URLForResource:@"Jaunty Gumption"
                                               withExtension:@"mp3"];
    self.backgroundMusic = [[AVAudioPlayer alloc] initWithContentsOfURL:musicFile
                                                                  error:nil];
    self.backgroundMusic.numberOfLoops = -1;
    [self.backgroundMusic play];
}

@end

这样做将使音频播放器至少与视图控制器一样长。

于 2013-07-03T18:28:43.680 回答