ios - 调节 SKAction playSoundFileNamed : 的音量

标签 ios objective-c swift sprite-kit

有没有办法调节通过 SKAction 播放的声音的音量 playSoundFileNamed:waitForCompletion: .

我想在我的游戏中实现一个简单的音乐和音效 slider 。我可以轻松控制背景音乐,因为我通过 AVAudioPlayer 播放它,但所有音效都是通过 SKAction 播放的。

最佳答案

这是我处理这个问题的代码

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 确保播放器在播放完整个声音之前不会被移除

希望这对您有所帮助!

关于ios - 调节 SKAction playSoundFileNamed : 的音量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20371223/

相关文章:

iphone - 模态呈现的 TableView 没有导航栏

string - CMutablePointer<CString> to String in swift-language

ios - 无法在 tabbarcontroller 之前显示登录屏幕

iphone - 自定义背景不在 View 更改时设置动画

ios - 如何突出显示相机 View 拍摄的图像上的一大块文本

iphone - iOS 版 AIR : create enterprise App without the certificate

ios - 按下完成后停止 AV 播放器

ios - iOS 中的稀疏图像匹配

iOS 9 多任务功能启用但限制 iPhone 应用程序仅支持纵向模式

objective-c - Objective-C : What does allocation 'count' mean (using instruments)