我使用此代码循环播放音频文件:
// *** In your interface... ***
#import <AVFoundation/AVFoundation.h>
...
AVAudioPlayer *testAudioPlayer;
// *** Implementation... ***
// Load the audio data
NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:@"sample_name" ofType:@"wav"];
NSData *sampleData = [[NSData alloc] initWithContentsOfFile:soundFilePath];
NSError *audioError = nil;
// Set up the audio player
testAudioPlayer = [[AVAudioPlayer alloc] initWithData:sampleData error:&audioError];
if(audioError != nil) {
NSLog(@"An audio error occurred: \"%@\"", audioError);
}
else {
[testAudioPlayer setNumberOfLoops: -1];
[testAudioPlayer play];
}
但是当场景改变时,音频停止。在所有场景中有没有办法让它在后台播放?
答案 0 :(得分:3)
你将音频播放器设置在SKScene以上的水平,我通过让UIViewController播放音乐在我的一个Sprite Kit应用程序中做到这一点,然后当我交换SKScenes时,音乐继续播放。
答案 1 :(得分:2)
转到您的主要SKScene并添加:
[self runAction:[SKAction playSoundFileNamed:@"YourFileName.extension" waitForCompletion:NO]];
即使你过渡场景,它也会一直播放。
和平。
答案 2 :(得分:0)
添加到此。这里是@ user3504848 PUSH CX ;saving the state of the counter as it will be modified in the displayNum
call displayNum ;display the n'th term (current term)
POP CX ;restoring state of the counter
的SpriteKit Swift 3.0版本