0
我有一個應用程序,可以跨不同的ViewControllers播放和控制音樂。要做到這一點,我創建AVAudioPLayer的兩個實例中的應用程序委託的DidFinishLaunchingMethod:AVAudioPlayer在5.0中正常工作,在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設備上,當再次調用時,它們不會開始重放。
謝謝!
看來我已經解決了這個問題,至少在我測試過的一臺設備上。 雖然它可能不是正確的解決方案,但它似乎工作時,我從新的viewController內重新初始化播放器。 我還列出了menuLoop作爲此viewController中的一個屬性。現在看起來沒問題。謝謝大家。 – Fluffhead 2012-04-27 18:25:19