私はバックグラウンドでソングを再生するAVAudioPlayerを持つゲームのUIViewControllerサブクラスを持っています。私のviewDidLoadメソッドでは、私は次のコードを持っています:UIViewControllerでのAVAudioPlayerの使用
[super viewDidLoad];
...
[NSTimer scheduledTimerWithInterval: 0.03 target: self selector: @selector(gameLoop) userInfo: nil repeats: YES];
NSString *path = @"path-to-song";
self->audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL: [NSURL fileURLWithPath: path] error: NULL];
audioPlayer.delegate = self;
audioPlayer.numberOfLoops = - 1;
[audioPlayer play];
gameLoopは、ゲームのコアロジックを含むメソッドです。テストデバイスでアプリケーションを実行すると、オーディオは再生されますが、フリーズしているように見えますが、gameLoopは正常に動作しません。すべてのAVAudioPlayerコードを削除すると、ゲームは正常に動作します。ここに私が気付いていないスレッド問題があるようです。何か案は?
どのような形式のオーディオファイルですか? (ちょうどそれが44MhzのAIFFファイルでないか、非常に高いビットレートのMP3か何かをチェックしているだけです) –
それはなぜ違いがありますか?オーディオは正常に再生されます... –