Фоновая музыка 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
Делая это, аудио проигрыватель будет оставаться в живых, по крайней мере, до тех пор, пока контроллер просмотра.