Фоновая музыка Objective-C

Я хочу знать, как добавить фоновую музыку в мое приложение. Мой код до сих пор:

- (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 ответ

Решение

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

Делая это, аудио проигрыватель будет оставаться в живых, по крайней мере, до тех пор, пока контроллер просмотра.

Другие вопросы по тегам