Objective-C背景音乐

时间:2013-07-03 18:15:07

标签: iphone objective-c avfoundation audiotoolbox

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

- (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框架中。 任何帮助,将不胜感激。 :) 谢谢马蒂斯

1 个答案:

答案 0 :(得分: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

执行此操作将使音频播放器至少与视图控制器一样长。