有没有办法调节通过SKAction playSoundFileNamed播放的声音音量:waitForCompletion : .
我想在我的游戏中实现一个简单的音乐和声音效果滑块.我可以通过AVAudioPlayer轻松控制背景音乐,但所有音效都通过SKAction播放.
不幸的是,您无法使用SKAction修改音量,因此您也必须使用AVAudioPlayer来产生效果。您可以按照已经想到的使用runBlock实现自定义playSoundFileNamed:waitForCompletion:volume:,因此与使用playSoundFileNamed:waitForCompletion:相比,您的代码不会有太大不同。
这是我如何处理这个问题的代码
NSError *error; NSURL *soundURL = [[NSBundle mainBundle] URLForResource:@"pew-pew-lei" withExtension:@"caf"]; AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:soundURL error:&error]; [player setVolume:masterVolume]; [player prepareToPlay]; SKAction* playAction = [SKAction runBlock:^{ [player play]; }]; SKAction *waitAction = [SKAction waitForDuration:player.duration+1]; SKAction *sequence = [SKAction sequence:@[playAction, waitAction]]; [self runAction:sequence];
masterVolume变量只是一些预设变量,用户可以从0.0-1.0更改
waitAction确保播放器在播放整个声音之前不会被删除
希望这可以帮助!