用SKAction循环播放音乐

我想用SKAction循环我的背景音乐,但是当我切换到另一个场景时,音乐会在一行后停止。 有没有办法启动循环并继续在不同的场景播放? 现在代码放在MyScene的init方法中 – 有更好的地方……也许didFinishLaunchingWithOptions?

这是我尝试过的:

if (delegate.musicOn == YES && delegate.musicIsPlaying == NO) { SKAction *playMusic = [SKAction playSoundFileNamed:@"loop.wav" waitForCompletion:YES]; SKAction *loopMusic = [SKAction repeatActionForever:playMusic]; [self runAction:loopMusic]; delegate.musicIsPlaying = YES; } 

您无法使用SKAction在场景中播放背景音乐。 改为使用AVAudioPlayer

 NSString *filePath = [[NSBundle mainBundle] pathForResource:@"music" ofType:@"mp3"]; NSError *error; AVAudioPlayer *gameSceneLoop = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:filePath] error:&error]; if (error) { NSLog(@"Error in audioPlayer: %@", [error localizedDescription]); } else { gameSceneLoop.numberOfLoops = -1; [gameSceneLoop prepareToPlay]; [gameSceneLoop play]; } 

在iOS 9中使用SKAudioNode:

 let backgroundMusic = SKAudioNode(fileNamed: "music.wav") self.addChild(backgroundMusic)