私は、さまざまなViewController間で音楽を再生および制御するアプリケーションを持っています。これを行うには、私は、アプリデリゲートのDidFinishLaunchingMethodにAVAudioPLayerの2つのインスタンスを作成:5.0で問題なく動作するAVAudioPlayer 4.0-4.3.5の問題
NSString *path = [[NSBundle mainBundle] pathForResource:@"minnie1" ofType:@"mp3"];
NSURL *path1 = [[NSURL alloc] initFileURLWithPath:path];
menuLoop =[[AVAudioPlayer alloc] initWithContentsOfURL:path1 error:NULL];
[menuLoop setDelegate:self];
menuLoop.numberOfLoops = -1;
[menuLoop play];
NSString *path2 = [[NSBundle mainBundle] pathForResource:@"minnie2" ofType:@"mp3"];
NSURL *path3 = [[NSURL alloc] initFileURLWithPath:path2];
gameLoop=[[AVAudioPlayer alloc] initWithContentsOfURL:path3 error:NULL];
gameLoop.numberOfLoops = -1;
[gameLoop setDelegate:self];
[gameLoop prepareToPlay];
この後、私は停止またはのようなコードを使用して再起動するように、様々なviewControllersでそれを呼び出す:
- (IBAction)playGameLoop{
NSLog(@"Begin playGameLoop");
FPAppDelegate *app = (FPAppDelegate *)[[UIApplication sharedApplication] delegate];
if ([FPAVManager audioEnabled] == NO){
//DO NOTHING
}
else {
if (app.gameLoop.playing ==YES) {
//DO NOTHING
}
else { [app.gameLoop play];
NSLog(@"End playGameLoop");
}
}
オーディオファイル初めてうまくいき、止めるように頼まれると止まる。しかし、iOS4デバイスでは、再び呼び出されたときに再生を開始しません。
ありがとうございます!ドキュメントから
少なくとも私がテストした1つのデバイスでこの問題を解決したようです。 これは適切な解決策ではないかもしれませんが、新しいviewControllerの内部からプレーヤーを再初期化するとうまくいくようです。 私はまた、このviewControllerのプロパティとしてmenuLoopをリストしました。今それは大丈夫と思われる。皆さんありがとう。 – Fluffhead