0

アプリに BGM を追加する方法を知りたいです。これまでの私のコード:

- (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

これを行うと、少なくともView Controllerと同じくらいの間、オーディオプレーヤーが生き続けます。

于 2013-07-03T18:28:43.680 に答える