如何使用SKAction循环播放音乐?

use*_*007 3 audio ios sprite-kit skaction skscene

我想用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;


}
Run Code Online (Sandbox Code Playgroud)

And*_*eev 5

使用SKActions 无法在场景中播放背景音乐.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];
}
Run Code Online (Sandbox Code Playgroud)


小智 5

在 iOS 9 中将 SKAudioNode 用于:

let backgroundMusic = SKAudioNode(fileNamed: "music.wav")
self.addChild(backgroundMusic)
Run Code Online (Sandbox Code Playgroud)